Reputation: 1070
I'm trying to make a simple uploadfile control with ASP.NET, and it wouldnt work:
<form id="form1" runat="server">
<div>
upload a file now.
<asp:FileUpload ID="fileupload1" runat="server" />
<asp:Button ID="button1" Text="Upload" runat="server" Width="73px"
onclick="button1_Click" />
<asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="#000099">
</asp:Label>
</div>
</form>
if(fileupload1.HasFile)
{
try
{
if(fileupload1.PostedFile.ContentType == "image/jpeg")
{
if(fileupload1.PostedFile.ContentLength < 51200000)
{
string filename = Path.GetFileName(fileupload1.FileName);
fileupload1.SaveAs(Server.MapPath("~/img/") + filename);
Label1.Text ="File uploaded successfully!";
}
else
Label1.Text ="File maximum size is 500 Kb";
}
else
Label1.Text ="Only JPEG files are accepted!";
}
catch(Exception exc)
{
Label1.Text = "The file could not be uploaded. The following error occured: "
+ exc.Message;
}
}
the file is not presented in the server.. any thoughts?
when I breakpoint, they all goes valid, the application gets to the code, it all working , but won't save it to the folders.
Upvotes: 1
Views: 1879
Reputation: 65087
This may or may not work entirely, but you need to include an enctype
attribute in your form.
<form id="form1" runat="server" enctype="multipart/form-data">
If you don't do that, browsers won't transfer the file.
See here: https://developer.mozilla.org/en-US/docs/HTML/Element/form#attr-enctype
Upvotes: 2
Reputation: 17614
I think the problem lies in these two lines
string filename = Path.GetFileName(fileupload1.FileName);
fileupload1.SaveAs(Server.MapPath("~/img/") + filename);
why are you using
string filename = Path.GetFileName(fileupload1.FileName);
It should be simple
fileupload1.SaveAs(Server.MapPath("~/img/") + fileupload1.FileName);
Upvotes: 0
Reputation: 18968
change
fileupload1.SaveAs(Server.MapPath("~/img/") + filename);
with
fileupload1.PostedFile.SaveAs(Server.MapPath("~/img/") + filename);
Upvotes: 1