使用"

本文关键字:quot FileUpload asp file input type 使用 | 更新日期: 2023-09-27 18:10:48

我正在修改一个现有的ASP。网络项目。原作者错误地试图通过将其可见性设置为隐藏来创建一个样式化的asp:FileUpload,并且只创建两个自定义样式的浏览和保存按钮。

出于安全原因,IE不允许这样做。我的策略是尝试使用type="file"的输入标签,就像这个例子一样。因此,如果我设置输入像<input type="file" ID="inputFile" />我如何访问/保存文件在我的代码后面,inputFile.SaveAs("someFile.txt"); ?另外(在代码后面)我可以做一些像inputFile.HasFile或有其他类似的东西吗?

根据建议,我正在尝试以下内容:

             <td>
                Enabled: <asp:CheckBox ID="CheckBox2" runat="server" />    &nbsp;&nbsp;
                <div id="testFileUploader">>
                   <input type="file" id="browserHidden" runat="server" />
                   <div id="browserVisible"><input type="text" id="fileField" /></div>
                </div>
             </td>

使用"<input type="file". .“/”;而不是asp:FileUpload

因此,您可以根据ASPX页面CodeBehindGUID生成一个随机文件名:

HttpPostedFile filePosted = Request.Files["uploadFieldNameFromHTML"];
if (filePosted != null && filePosted.ContentLength > 0)
{
    string fileNameApplication = System.IO.Path.GetFileName(filePosted.FileName);
    string fileExtensionApplication = System.IO.Path.GetExtension(fileNameApplication);
    // generating a random guid for a new file at server for the uploaded file
    string newFile = Guid.NewGuid().ToString() + fileExtensionApplication;
    // getting a valid server path to save
    string filePath = System.IO.Path.Combine(Server.MapPath("uploads"), newFile);
    if (fileNameApplication != String.Empty)
    {
        filePosted.SaveAs(filePath);
    }
}

对于Request.Files["uploadFieldNameFromHTML"],在HTML代码中设置ID:

<input type='file' id='...' />
此外,不要忘记在ASPX页面的主表单中定义runat="server",最好在主表单中设置它,不要忘记<form>enctype="multipart/form-data"参数:
<body>
    <form enctype="multipart/form-data" id="form1" runat="server">
        <input type='file' id='uploadFieldNameFromHTML' />
...

为对象添加runat="server"。这样,它将像任何asp:FileUpload控件一样在CodeBehid上工作。

如前所述,您可以在输入文件标签中添加runat="server"。

另一方面,已经有一个类似的帖子关于你的要求。看看这个:

在ASP.net中上传文件而不使用FileUpload服务器控件

希望对您有所帮助

干杯!

if(fileUrunResim.HasFile)
    fileUrunResim.SaveAs(MapPath("~/Images/" + fileUrunResim.FileName));

**if you unique filename,**
string extension = Path.GetExtension(fileUrunResim.FileName);
string fileName = Guid.NewGuid().ToString().Substring(0, 25) + extension ;

if(fileUrunResim.HasFile)
    fileUrunResim.SaveAs(MapPath("~/Images/" + filename ));