首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在浏览器的进度栏中显示FTPWebRequest文件上载的进度?

如何在浏览器的进度栏中显示FTPWebRequest文件上载的进度?
EN

Stack Overflow用户
提问于 2013-09-28 11:13:16
回答 2查看 2.7K关注 0票数 0

如何在浏览器的进度条中显示FTPWebRequest文件上传的进度?

在我的Blueimp MVC4应用程序中,我实现了Blueimp文件上传示例的.Net示例,如下所示:

http://www.webtrendset.com/2011/06/22/complete-code-example-for-using-blueimp-jquery-file-upload-control-in-asp-net/

上传的文件使用jquery.fileupload-ui.js插件。

我已经修改了MVC应用程序中的handler.ashx,以便使用FTPWebRequest将文件上传到FTP服务器。

当我开始上传文件时,进度条可以工作,但进度指示器不能准确显示进度的状态

甚至在FTPWebRequest启动之前,浏览器中的进度条始终指示进度已在浏览器中完成。

我的处理程序看起来像这样

代码语言:javascript
运行
复制
    public class Handler1 : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            try
            {
                context.Response.ContentType = "text/plain"; //"application/json";

                HttpContext postedContext = HttpContext.Current;


                var r = new System.Collections.Generic.List<ViewDataUploadFilesResult>();

                var js = new JavaScriptSerializer();

                foreach (string file in context.Request.Files)
                {
                    var hpf = context.Request.Files[file] as HttpPostedFile;

uplaodFiles(hpf,pid, id);

   private UploadState uplaodFiles(HttpPostedFile file,Guid pid, string id)
        {


                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);

                request.Method = WebRequestMethods.Ftp.UploadFile;

                request.Timeout = 3600000;

                request.Credentials = new NetworkCredential(ftpuser, ftpassword);

                byte[] fileData = null;

                using (Stream input = file.InputStream)
                {
                    using (Stream output = request.GetRequestStream())
                    {
                        input.CopyTo(output);
                    }
                }

我有意省略了上面代码示例的一部分。

EN

回答 2

Stack Overflow用户

发布于 2013-09-28 13:18:33

http://tim.mackey.ie/FtpWebRequestWithProgressBarCFtp.aspx

请看上面的链接。它会给你答案

票数 0
EN

Stack Overflow用户

发布于 2014-09-08 22:58:04

听起来您至少已经解决了MVC应用程序的FtpWebRequest中涉及的大部分问题。请回答两个简短的问题。您的实现是否支持上传非常大的文件?(我正在编写我的第一个MVC应用程序,它需要通过FTP将非常大的文件(从500MB到近6 6GB)上传到与MVC应用程序位于同一虚拟机上的FileZilla FTP服务器)。

如果是这样,您是否会考虑发布一个下载链接,指向在视图中使用的代码、它的控制器和修改后的handler.ashx,以及连接处理程序所需的内容?

我已经找到了很多非web应用的例子和一些老式的服务器端ASP.Net应用的例子,但是没有一个MVC可以通过需要IIS缓冲整个文件的技术来克服2 2GB的上传限制。

谢谢!-Bob

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

https://stackoverflow.com/questions/19062815

复制
相关文章

相似问题

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