首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不使用FileUpload服务器控件的情况下在ASP.net中上载文件

在不使用FileUpload服务器控件的情况下在ASP.net中上载文件
EN

Stack Overflow用户
提问于 2009-02-20 13:28:40
回答 9查看 237K关注 0票数 98

如何使用普通的旧式<input type="file" />获取ASP.net web表单(v3.5)以发布文件

我对使用ASP.net FileUpload服务器控件不感兴趣。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-02-20 13:47:37

在您的aspx中:

代码语言:javascript
复制
<form id="form1" runat="server" enctype="multipart/form-data">
 <input type="file" id="myFile" name="myFile" />
 <asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" />
</form>

在后台代码中:

代码语言:javascript
复制
protected void btnUploadClick(object sender, EventArgs e)
{
    HttpPostedFile file = Request.Files["myFile"];

    //check file was submitted
    if (file != null && file.ContentLength > 0)
    {
        string fname = Path.GetFileName(file.FileName);
        file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname)));
    }
}
票数 133
EN

Stack Overflow用户

发布于 2013-10-09 18:35:30

这是一个不依赖于任何服务器端控件的解决方案,就像OP在问题中所描述的那样。

客户端HTML代码:

代码语言:javascript
复制
<form action="upload.aspx" method="post" enctype="multipart/form-data">
    <input type="file" name="UploadedFile" />
</form>

upload.aspx的Page_Load方法:

代码语言:javascript
复制
if(Request.Files["UploadedFile"] != null)
{
    HttpPostedFile MyFile = Request.Files["UploadedFile"];
    //Setting location to upload files
    string TargetLocation = Server.MapPath("~/Files/");
    try
    {
        if (MyFile.ContentLength > 0)
        {
            //Determining file name. You can format it as you wish.
            string FileName = MyFile.FileName;
            //Determining file size.
            int FileSize = MyFile.ContentLength;
            //Creating a byte array corresponding to file size.
            byte[] FileByteArray = new byte[FileSize];
            //Posted file is being pushed into byte array.
            MyFile.InputStream.Read(FileByteArray, 0, FileSize);
            //Uploading properly formatted file to server.
            MyFile.SaveAs(TargetLocation + FileName);
        }
    }
    catch(Exception BlueScreen)
    {
        //Handle errors
    }
}
票数 40
EN

Stack Overflow用户

发布于 2009-02-20 13:39:17

必须将formenctype属性设置为multipart/form-data;然后才能使用HttpRequest.Files集合访问上传的文件。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/569565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档