Web Forms :: Upload Large Files - Implement Progress Bar?
Mar 18, 2010
I am trying to figure out a solution to upload large files under a web page. I know WCF + Streaming is a proper solution for large file transfers, but I am not sure how to get the WCF client implemented under ASP.NET. Here is the link: [URL] Besides, is there anyway I could implement a progress bar showing the upload progress while the file is being uploaded, and voiding page timeout?
I've got an ASP.NET web application (utilizing WebForms) and am using Uploadify to handle uploading large files. This is done by posting the file to an HttpHandler.
Example of code (simplified for demonstration purposes):
$(".uploadify").uploadify({[CODE]....
the progress bar being displayed doesn't actually reflect the progress of the upload, and shows the upload as being complete long before the file is actually uploaded. Therefore, the user interface effectively appears like it is doing nothing while the progress bar stays at 100%, until the file is complete.
In some cases, the upload simply fails after reaching 100%, with the OnComplete event never getting fired, almost like the response from the HttpHandler is getting lost in transit, even though the file is saved.I've tried both Flajaxian and SWFUpload, and experienced similar issues with the progress bar being completely out of sync with actual upload progress, indicating completion well before the upload was actually complete.
This problem is not apparent when testing locally, or with small files (typically under a few megabytes) as these tend to upload fairly quickly and there's little or no lag between the file being uploaded and the progress bar completing.Is there any way of using a Flash upload solution (such as Uploadify) with an ASP.NET web application and have the progress bar better represent the actual progress of the upload?
Update: Eventually, I gave up trying to use a flash based uploader as they seemed a bit too awkward, especially the progress bar, which didn't represent the actual progress of the upload at all. Replaced this with Brettle NeatUpload instead which works much better.
I need to create an upload site to upload large files over 2GB I want ot create a site like [URL]. Once these files get upload i want them to have a link to the file created but the link encrypted. I know there is a limit to http upload. I have used a bunch of the flash upload web apps but are capped at a specfic mb becuase of .net. What options are out there.
What is better way to large upload file. using a web service or in application itself. If in application, how can we check that files is to upload. actually i dont want user to wait for complete uploading, when it starts uploading user will get response of uploaded and uploading will be done in backgroud. I am not sure this type of task can be done in webservice also so that user doesnot need to wait for complete uploading. and one more query which event fires when the page redirects to another page. Is it Page_UnLoad or Dispose.
We use the MojoPortal to a website and have some problems to upload files that is around 100 MB with the upload module. (Pleas note that this has probably nothing to do with MojoPortal but with the ASP.NET and the IIS)
The MojoPortal is set to use regular file Upload(not Neat Uploader) and to be able to upload big files we have set the following :
The problem is that the upload will cacel after a couple of minuts (Aborted).
Is there any other values that I need to set to make this possible? The MojoPortal itself should not have any settings for this as far as I know so its regular ASP.NET 4.0.
Anyone got some good pointers at an open source (article for creating your own would even be better) component to upload large files.SlickUpload for instance works great, and surely worth the money, but as this is for a pet project, a paid solution is just not what I'm after.
I am building a website where i need a page where user can upload large video files, i have created WCF service with streaming but i am calling that WCF service from Button_Click event of web page.
I have used below mentioned article for WCF service creation
WCF Streaming
I have used streaming as it should be efficient and should not be buffered in memory of server.
Now questions
1) I am having doubts that the entire file is uploaded to the web server and then it is transferred to WCF Service server...if this is true then i am not getting advantage of streaming as well as iis and web server will be down very soon if user uploads large file or multiple user are uploading files con currently
2) Is there any other efficient way to do same operation with some other technique
EDIT :
If I am not calling WCF Service method from ASP .Net code in that case also it is transferring bytes to the web server which i have checked with HTTPFox
I have checked above thing with upload control and putting one button on UI whose click event is bound to one method in code behind.
So, still i am having that confusion that how data is transferred
Client Machine - Web Server (ASP .Net Application) - Service Server (WCF Service) Client Machine - Service Server (WCF Service)
NOTE : If i am putting a debug point on button_click and uploading 10 kb file it hits that in less then 1 sec. but if i am uploading 50 mb file then it is taking time.
I placed code of calling WCF service inside that button_click event
We'd like to restrict the maximum upload file size in our web site. We've already set the appropriate limits in our web.config. The problem we're encountering is if a really large file (1 GB, for example) is uploaded, the entire file is uploaded before a server-side error is generated, and the type of the error is different whether the file is huge or not. Is there a way to detect the size of a pending file upload before the actual upload takes place?
Here's my relevant web.config settings that restrict requests to 16 MB:
[Code]....
Update:
I know that client-side technologies like Flash can detect file sizes before upload, but we need a server-side workaround because we're wanting to target platforms that have no Flash/Java/ActiveX/Silverlight support. I believe that IIS or ASP.NET has a bug that's allowing large files to be uploaded despite the limits, so I've filed a bug here.
Would an ISAPI extension give me more control over request processing than HTTP modules and handlers, such as allowing me to abort an upload if the Content-Length header is seen to be larger than the allowed limit?
Update 2:
Sigh. Microsoft has closed the bug I filed as a duplicate but has provided no additional information. Hopefully they didn't just drop the ball on this.
I am uploading file through ftp using asp.net,c#. If my file size is small(3 MB) then it is uploading file bit if my file size is large then it is not uploading all file. it is uploading only about 3500 kb. i am using the following code.
I have a requirement by my client to be able to upload extremely large files.
I'm talking about 7 GB files. The website they are currently running on is a ASP.NET 4.0 app, so obviously the standard upload scheme for my web app is not going to work.
I'm tossing around multiple options trying to figure out what the best route to go would be.
One option I'm thinking about seeing if I can do would be to have a BitTorrent Uploader. The end users for this app will typically have the same file on hand, so the idea would be that an end user would go to the site, say that they wanted to upload a file. At that point, they would pick the file, and then the server would immediately mark that person as a seed for that file. Then, my web app would go to a preconfigured leech on our side, and instruct the leech to download the file. I would expect at some point during or after this process the torrent would do some magic to find other seeders on the client's network, or wherever, but that's the idea.
Is there any technology out there already that does this? Or am I describing something that I'm going to have to build from the ground up?
Im using a file uploader to upoad files to a folder used for upload.But the problem is this folder is a linux folder. I have made it a shared folder so that I can access from windows by samba. So, file transfer is successful when I'm using os but when I try to upload something from my websites uploader to this folder, this process is not successful. I have given all permissions to this folder.Don't know whats the problem.I have used both type of slashes for directory but still it is not successful.
im trying to implement a gallery of sorts where the usercan view and upload images (he can only upload once signed in). Does anyone know where i can find a gallery like this, or do i have to code it myself?
I have standard asp.net file upload control on a page. If a user try to upload large file they get all the cryptic error messages like page not found etc.I dont want them to be able to upload large files, but still want to show gracefull error message saying that file is too large to upload or something like that. Is there any way to do that?
i have a large excel file which has 1 lakh row , i want to insert these data in my table i am using entity framework for insert but it takes more than 45 minutes to insert which is too much, i want to speed up the uploading process what should i do. can I use multithreading for it if yes then how i can use? if any other way to do this process.
I have a small problem because when i click on my Button to export the excel data, i have a short waiting time (about 6 seconds) and i would like during this time displaying a progress bar. How to resolve this problem and implement the progress bar?
Before I get started on this venture, does anyone know if there is someway to implement a progress bar with the AsyncFileUpload control?
And does anyone have any good links for how to start using the control? The website's "tutorial" page is about 2 lines long.
Why does it seem so hard to get a progress bar working? I don't want to download any 3rd party software or precompiled ProgressBar controls I just want to make one :(
I have a form which has like 300+ Options.All is done and working fine, but i am looking to make it more attractive with use of something "Loading or Loader"..Like when user select an option from dropdown it shows the corresponding content with MultiView and Views so i want meanwhile the request complete it should show a gif message like "Please wait " and a gif with it.And similarly when user press "Save Data" button it should show the same kind of Ajax effect.
I'm using a web form that allows users to upload media files. The code works great on small to medium size files, but I've found that if a file is really big(like bigger than 15MB), the user will get a 404 error. Currently I'm using the code below to handle the file. Does .NET provide another way to handle larger files?
I used this sample to work around the issue we were having with large files. [URL] Unfortunately, when I attempt to download large files of 30MBs or more, the download times out and the user gets a partial download. It doesn't seem to be a consistant percentage of the download either. I attempted to download a 50MB file and got to 33MB. When trying a 30MB file, I downloaded 24MB.Below is my code.
if (File.Exists(strFilePath)) { fileName = System.IO.Path.GetFileName(strFilePath); Response.Clear(); system.IO.Stream iStream = null; byte[] buffer = new Byte[10000]; int length; long dataToRead; try { iStream = new System.IO.FileStream(strFilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); dataToRead = iStream.Length; //FileInfo file = new FileInfo(strFilePath); Response.ContentType = "application/octet-stream"; Response.AddHeader("Content-Length", iStream.Length.ToString()); Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName.Replace(" ", string.Empty)); while (dataToRead > 0) { if (Response.IsClientConnected) { length = iStream.Read(buffer, 0, 10000);..................
We have a problem with some people working from home where when uploading 30-40mb (max upload is 50mb) they are timing out. Naturally when these people are on site they have no problems because of the network speed with have. What are peoples thoughts about extening the time out period, working on an 250k upload speed from home, we would be thinking about 20 to 30 mins.
I have the following function that works great. The screen Dims until the response is returned to the user. However, because the process could be quite long, I have been asked if I can place a progress bar in the middle of the screen whilst it's dimmed to give the user an idea of how long the process is going to take and so that they dont think the browser has hung.
Can anybody suggest a good Progress bar plug in with an idea of how to implement into my existing function. I'm using VS2010.