我想從一個頁面上傳文件到另一個頁面,然後保存到我的在線服務器。如何從一個頁面上傳文件到另一個頁面在asp.net?
我的代碼是
第一頁:
<html>
<body>
<form action="http://localhost:3132/Sample/api/Test.aspx?frm=31" method="post" target="_blank">
Name: <input type="text" name="f1" id="f1"><br>
Email: <input type="text" name="email" id="email"><br>
FileName: <input type="file" name="file" id="file"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
第二頁:Entries.aspx
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
System.Data.DataTable dtData=new System.Data.DataTable();
foreach (string strKey in Request.Form.AllKeys)
{
if(strKey.Equals("data.xml") || dtData.Columns.Contains(strKey))
continue;
dtData.Columns.Add(strKey);
System.Data.DataRow dr=dtData.NewRow();
if(dtData.Rows.Count>0)
dr=dtData.Rows[0];
dr[strKey]=Request.Form[strKey];
if(dtData.Rows.Count<1)
dtData.Rows.Add(dr);
}
string strFileName = string.Empty;
string newFilename = string.Empty;
string fileName = System.IO.Path.Combine(Server.MapPath("~/APIUploaded"), Request.Params["filename"].ToString());
newFilename = Guid.NewGuid().ToString();
System.IO.FileInfo fInfo = new System.IO.FileInfo(fileName);
newFilename = string.Format("{0}{1}", newFilename, fInfo.Extension);
strFileName = System.IO.Path.Combine(Server.MapPath("~/APIUploaded"), newFilename);
using (System.IO.FileStream fileStream = System.IO.File.Create(strFileName))
{
/*Getting stream from the Request object.*/
using (System.IO.Stream stream = Request.InputStream)
{
int byteStreamLength = (int)stream.Length;
byte[] byteStream = new byte[byteStreamLength];
/*Reading the stream to a byte array.*/
stream.Read(byteStream, 0, byteStreamLength);
/*Writing the byte array to the harddisk.*/
fileStream.Write(byteStream, 0, byteStreamLength);
}
}
通過我得到的表單值與上傳文件第二頁名稱。當我要保存到我的Online服務器文件夾時,文件內容爲空。這是可能通過在asp.net中使用文件上傳控制從一個頁面上傳文件到另一個頁面?
你不會被上傳一個丟失了'加密類型的任何文件'在那個形式上。 –
@馬克B,非常感謝。我更正了我的表單標記。它正在工作。 – RGS