1

ASP.NETを使用して単純なuploadfileコントロールを作成しようとしていますが、機能しません。

これが私のコード(.aspx)です:

<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>

そしてこれが私のコードbehind(.cs)です:

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;
    }
  }

ファイルはサーバーに表示されません。何か考えはありますか?

ブレークポイントを設定すると、それらはすべて有効になり、アプリケーションはコードに到達し、すべてが機能しますが、フォルダーには保存されません。

4

3 に答える 3

2

これは完全に機能する場合と機能しない場合がありenctypeますが、フォームに属性を含める必要があります。

<form id="form1" runat="server" enctype="multipart/form-data">

そうしないと、ブラウザはファイルを転送しません。

ここを参照してください:https ://developer.mozilla.org/en-US/docs/HTML/Element/form#attr-enctype

于 2013-03-10T09:38:06.647 に答える
1

変化する

fileupload1.SaveAs(Server.MapPath("~/img/") + filename);

fileupload1.PostedFile.SaveAs(Server.MapPath("~/img/") + filename);
于 2013-03-10T09:38:53.243 に答える
0

問題はこの2行にあると思います

string  filename = Path.GetFileName(fileupload1.FileName);
fileupload1.SaveAs(Server.MapPath("~/img/") + filename);

なぜ使用しているのですか

 string  filename = Path.GetFileName(fileupload1.FileName);

シンプルなはずです

fileupload1.SaveAs(Server.MapPath("~/img/") + fileupload1.FileName);
于 2013-03-10T09:46:51.990 に答える