在asp.net中访问服务器端的输入类型文件

前端之家收集整理的这篇文章主要介绍了在asp.net中访问服务器端的输入类型文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用< input type =“file”/>标记以将文件上载到服务器.如何在服务器端访问该文件并将其存储在服务器上? (该文件是图像文件)

客户端代码是:

<form id="form1" action="PhotoStore.aspx" enctype="multipart/form-data">
    <div>
    <input type="file" id="file" onchange="preview(this)" />
    <input type="submit" />
    </div>
</form>

Photostore.aspx.cs有

protected void Page_Load(object sender,EventArgs e)
        {
            int index = 1;
            foreach (HttpPostedFile postedFile in Request.Files)
            {
                int contentLength = postedFile.ContentLength;
                string contentType = postedFile.ContentType;
                string fileName = postedFile.FileName;

                postedFile.SaveAs(@"c:\test\file" + index + ".tmp");

                index++;
            } 

        }

我尝试上传jpg文件.无法查看已保存的文件.出了什么问题?

解决方法

您需要添加id和runat =“server”属性,如下所示:
<input type="file" id="MyFileUpload" runat="server" />

然后,在服务器端,您将可以访问控件的PostedFile属性,该属性将为您提供ContentLength,ContentType,FileName,InputStream属性SaveAs方法等:

int contentLength = MyFileUpload.PostedFile.ContentLength;
string contentType = MyFileUpload.PostedFile.ContentType;
string fileName = MyFileUpload.PostedFile.FileName;

MyFileUpload.PostedFile.Save(@"c:\test.tmp");

或者,您可以使用Request.Files,它为您提供所有上传文件的集合:

int index = 1;
foreach (HttpPostedFile postedFile in Request.Files)
{
    int contentLength = postedFile.ContentLength;
    string contentType = postedFile.ContentType;
    string fileName = postedFile.FileName;

    postedFile.Save(@"c:\test" + index + ".tmp");

    index++;
}

猜你在找的asp.Net相关文章