I am working on a ASP.NET app and i have a need to post back to the server after a file is chosen in a FileUpload control without having to have the user explicitly click a 'submit' button. Is this possible? and if so, how?
views:
2809answers:
2
+4
A:
I'm assuming you want to make the upload start right away. If so, you should react to the change
event in JavaScript, and simply make it submit the form.
<!-- HTML code --->
<input
type="file"
onchange="if (confirm('Upload ' + this.value + '?')) this.form.submit();"
>
Asking the users for confirmation is recommendable, so they stay in control of the process and can cancel if they chose the wrong file by accident.
Tomalak
2008-12-14 15:23:36
Definitely give the user an opportunity to abort if they suddenly realize that they clicked on the wrong file.
DOK
2008-12-14 16:09:20
+1
A:
The first answer had the right javascript, but ASP.NET does not necessarily expose the input control directly, so it is better to put the onchange event on the FileUpload control.
<asp:FileUpload ID="myFileUpload" onchange="if (confirm('Upload ' + this.value + '?')) this.form.submit();" runat="server" />
Another route to go is to provide rich uploading via flash/silverlight/ajax. A great component for this can be found at http://www.ajaxuploader.com/ for about $100 or there is a free one at http://www.swfupload.org/ that requires a little more effort to implement.
AJ
2008-12-14 23:13:10