Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带有FileUpload控件的进度指示器_C#_Asp.net_File Upload - Fatal编程技术网

C# 带有FileUpload控件的进度指示器

C# 带有FileUpload控件的进度指示器,c#,asp.net,file-upload,C#,Asp.net,File Upload,我有一个网页,我希望人们能够上传内容到。(由于它的访问限制,只有少数人会使用它,因此我不太担心任何DOS类型的攻击。) 我正在使用fileUpload控件执行此操作: protected void Button1_Click(object sender, EventArgs e) { if (fileUploader.HasFile) try { fileUploader.SaveAs(Server.MapPath("Uploads\\

我有一个网页,我希望人们能够上传内容到。(由于它的访问限制,只有少数人会使用它,因此我不太担心任何DOS类型的攻击。)

我正在使用fileUpload控件执行此操作:

protected void Button1_Click(object sender, EventArgs e)
    {
        if (fileUploader.HasFile)
        try {
          fileUploader.SaveAs(Server.MapPath("Uploads\\") + fileUploader.FileName);
          errorMessage.Text = "File name: " +
               fileUploader.PostedFile.FileName + "<br>" +
               fileUploader.PostedFile.ContentLength + " kb<br>";
        }
        catch (Exception ex) {
          errorMessage.Text = "ERROR: " + ex.Message.ToString();
        }
        else
        {
           errorMessage.Text = "You have not specified a file.";
        } 
    }
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
if(fileUploader.HasFile)
试一试{
fileUploader.SaveAs(Server.MapPath(“Uploads\\”)+fileUploader.FileName);
errorMessage.Text=“文件名:”+
fileUploader.PostedFile.FileName+“
”+ fileUploader.PostedFile.ContentLength+“kb
”; } 捕获(例外情况除外){ errorMessage.Text=“ERROR:+ex.Message.ToString(); } 其他的 { errorMessage.Text=“您尚未指定文件。”; } }
这些文件的大小可以达到50MB(我已经更改了web.config以允许这样做)。我的问题是,对于大文件,用户看不到上传的进度

我想知道如何在页面上显示进度,以便用户可以看到正在发生的事情。不要对任何花哨的东西大惊小怪——就像:

上载字节数/总字节数

好的。我可以使用postedFile.ContentLength获得总字节数,但不知道如何上传字节数

另外-我是否能够在上传过程中刷新屏幕

干杯


Ben

我使用了几个商业组件来实现这一点:

protected void Button1_Click(object sender, EventArgs e)
    {
        if (fileUploader.HasFile)
        try {
          fileUploader.SaveAs(Server.MapPath("Uploads\\") + fileUploader.FileName);
          errorMessage.Text = "File name: " +
               fileUploader.PostedFile.FileName + "<br>" +
               fileUploader.PostedFile.ContentLength + " kb<br>";
        }
        catch (Exception ex) {
          errorMessage.Text = "ERROR: " + ex.Message.ToString();
        }
        else
        {
           errorMessage.Text = "You have not specified a file.";
        } 
    }

而且

您的实现是一个同步操作,不会向用户“反馈”文件上载进度

有相当多的选择和第三方组件,你可能想谷歌他们


这里有一个开头:

这个答案不是特定于ASP

文件上载通常通过使用
内容类型:multipart/form data
发出
httppost
请求来完成。这包括请求正文的一个部分中的文件正文

因此,在给定的浏览器选项卡中,在给定的时间只能加载一个页面。简单的回答是,除非你对iFrame很感兴趣(一个用于状态,一个用于上传),否则你将无法显示状态


但是如果您使用Flash,您可以。是一个很棒的小前端插件(用于jQuery),它允许用户选择多个文件,并将它们全部上载,同时显示过程中的状态。我刚刚把它插入一个限制上传量为64M的网站。工作非常棒。

Uploadify似乎是前进的方向(如果我能让它工作的话!)我想那个网站已经被黑客入侵了。有没有其他地方可以找到Matt Berseth的控制源?