【问题标题】:C# Get and Set property programmatically on FileUpload1.PostedFileC# 在 FileUpload1.PostedFile 上以编程方式获取和设置属性
【发布时间】:2017-07-13 00:26:45
【问题描述】:

我的 asp.net 移动应用程序上有一个文件上传控件。 我的要求是从浏览器访问本地文件夹路径时;我需要以编程方式设置路径。 并且不允许用户浏览文件。

我的问题是,当我尝试访问 File-upload Control 属性名称时 -> Posted-file 那将不允许我以编程方式设置值。这将允许当前只读。
可以在文件上传控件上以编程方式设置值吗?
或者是否有另一种方法可以使用类似网络用户控件来公开 FileUpload1.PostedFile 属性?

经验:

public partial class TestWebUserControl : System.Web.UI.UserControl
{
public System.Web.HttpPostedFile PostedFileText
{            
get { return FileUpload1.PostedFile; }
//set { FileUpload1.PostedFile = value; }
}
}

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    你不能直接给文件post设置值

    在asp.net中回发后设置文件上传控件的值没有提到的直接解决方案。即使您尝试通过 javascrip 设置 FileUpload 控件的值,由于安全限制,这将不起作用。

    您也不能在服务器上设置 FileUpload 值,因为 FileName 和其他属性是只读的。

    解决方案:

    你可以使用:

    label control to display the last selected file .
    hiddenField Control to transfer the selected file from the client to server.
    

    但您还需要记住上次发布的文件,因为如果您没有从 FileUpload 控件中选择文件然后回发,您会注意到 FileUpload.postedFile 值将消失,因此您必须保存在某处张贴文件。 请参阅此示例;

    ASPX 代码

    <form id="form1" runat="server">  
           <asp:FileUpload ID="FileUpload1" runat="server" /> <br />  
            <asp:Label ID="lblCurrentFile" runat="server"></asp:Label><br />  
           <br />  
           <asp:Button ID="BtnSubmit" runat="server" Text="postBack" />  
           <br />  
           <asp:HiddenField ID="HiddenField1" runat="server" />  
    </form>  
    

    找到完整的解决方案|:http://www.nullskull.com/q/10140208/we-cant-set-value-of-file-upload-control-after-postback-in-aspnet.aspx

    【讨论】:

      【解决方案2】:

      为什么要修改请求?你不能改变它。

      如果您想阅读它并将其分配到局部变量(字节[])中。

      byte[] buffer = new byte[FileUpload1.PostedFile.InputStream.Length];
      FileUpload1.PostedFile.InputStream
       .Read(buffer, 0, FileUpload1.PostedFile.InputStream.Length);
      

      【讨论】:

        猜你喜欢
        • 2012-08-20
        • 1970-01-01
        • 1970-01-01
        • 2017-08-05
        • 2012-08-26
        • 2018-04-14
        • 2011-08-29
        • 1970-01-01
        • 2021-06-22
        相关资源
        最近更新 更多