2012-09-25 92 views
0
$(".btnSavePurpose").click(function(e){ 
     e.preventDefault(); 
     var item=$(this); 
     $.post("url", 
         item.closest("form").serialize(), function(data){ 
      if(data.Status=="Success") 
      { 
      //Let's replace the form with messsage     
      alert("Updated Successfully"); 
      }  
      else 
      { 
       alert(data.ErrorMessage); 
      } 

     }); 
    }); 

我想用ajax發表我的表單。我用$ post()jquery函數。我正在獲取沒有上傳文件的所有數據。我添加了enctype來形成。我得到Request.File [「文件」]爲空。我怎麼能retrive上傳文件

<form method="post" id="profile-form" enctype="multipart/form-data"> 
    <table> 
    <tr> 
     <td style="width: 25%"> 
     Profile Name<span class="Require">&nbsp;*</span> 
     </td> 
     <td style="width: 10%"> 
      : 
     </td> 
      <td style="width: 70%">@Html.TextBoxFor(m => m.ProfileName, new { @class = "formTextBox" }) 
      </td> 
    </tr> 
    <tr> 
     <td> 
      My Ocupation<span class="Require">&nbsp;*</span> 
     </td> 
     <td> 
     : 
     </td> 
     <td>@Html.TextBoxFor(m => m.Ocupation, new { @class = "formTextBox" }) 
     </td> 
    </tr> 
    <tr> 
     <td> 
     Upload New Profile Photo 
     </td> 
     <td> 
     : 
     </td> 
     <td> 
      <input type="file" name="file" id="file" runat="server" accept="gif|jpg|png|jpeg|bmp" />              
     </td> 
    </tr> 
</table> 
<input type="submit" id="btnSubmit" value="Submit" class="formButton" /> 
</form> 
+0

http://stackoverflow.com/questions/2320069/jquery-ajax-file-upload –

回答

0

嘗試這個例子
HTML

<form id="form1" runat="server" enctype="multipart/form-data"> 
<input type="file" id="myFile" name="myFile" /> 
<asp:Button runat="server" ID="btnUpload" OnClick="btnUploadClick" Text="Upload" /> 
</form> 

.NET

protected void btnUploadClick(object sender, EventArgs e) 
    { 
     HttpPostedFile file = Request.Files["myFile"]; 

     //check file was submitted 
     if (file != null && file.ContentLength > 0) 
     { 
      string fname = Path.GetFileName(file.FileName); 
      file.SaveAs(Server.MapPath(Path.Combine("~/App_Data/", fname))); 
     } 
    } 

如何寫JS看看這裏Using jQuery to send data from a multipart/form-data through ajax

0

我怕你正在試圖做的是不是這麼簡單。您無法使用JavaScript讀取文件。無論如何您都無法訪問文件系統。這意味着你不能使用AJAX發佈文件。 (好吧,可以用HTML5完成 - 請參閱:How can I upload files asynchronously?

有很多方法可以解決這個問題,你可以自己快速地拼湊在一起的東西是將文件發佈到iframe 。我建議使用一個jQuery插件,例如http://blueimp.github.com/jQuery-File-Upload/

+0

我直接在數據庫中存儲文件 – user

+0

這裏有一篇文章:http://www.codeproject.com/Articles/ 1757 /文件上傳,與-ASP-NET#得到 – Zut