c# - Using "<input type="file" .... />" instead of asp:FileUpload -
i'm modifying existing asp.net project. original author erroneously tried create styled asp:fileupload setting visibility hidden , creating 2 custom styled browse , save buttons.
for security reason, ie not permit this. strategy instead try use input tags type="file", this example. if set input <input type="file" id="inputfile" />
how access/save file in code behind, inputfile.saveas("somefile.txt");
? (in code behind) can inputfile.hasfile
or there other analog of this?
as per recommendations i'm trying following:
<td> enabled: <asp:checkbox id="checkbox2" runat="server" /> <div id="testfileuploader">> <input type="file" id="browserhidden" runat="server" /> <div id="browservisible"><input type="text" id="filefield" /></div> </div> </td>
so, can generate random file name future upload, based on guid
@ codebehind
of aspx page:
httppostedfile fileposted = request.files["uploadfieldnamefromhtml"]; if (fileposted != null && fileposted.contentlength > 0) { string filenameapplication = system.io.path.getfilename(fileposted.filename); string fileextensionapplication = system.io.path.getextension(filenameapplication); // generating random guid new file @ server uploaded file string newfile = guid.newguid().tostring() + fileextensionapplication; // getting valid server path save string filepath = system.io.path.combine(server.mappath("uploads"), newfile); if (filenameapplication != string.empty) { fileposted.saveas(filepath); } }
for request.files["uploadfieldnamefromhtml"]
set id in html code here:
<input type='file' id='...' />
also, don't forget define runat="server"
@ main form in aspx page, it's better set @ main form , don't forget enctype="multipart/form-data"
parameter of <form>
:
<body> <form enctype="multipart/form-data" id="form1" runat="server"> <input type='file' id='uploadfieldnamefromhtml' /> ...