2012-10-20 36 views
5

Tôi có đoạn mã sau để tải lên một tập tin trong trang web của tôi:Làm thế nào để tự động tải lên tập tin sau khi tập tin đã được chọn

@using (Html.BeginForm("UploadProfileImage", "Member", FormMethod.Post, new { @encType = "multipart/form-data" })) 
    { 

    @Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false) 
    <span class="success">@ViewData["SuccessMessage"]</span> 
    <input class="button" type="submit" name="submit" value="Upload" />   

} 

Tôi muốn điều này để có thể tự động gửi sau khi người sử dụng chọn các tập tin từ "duyệt" nút. Hiện tại, người dùng phải nhấp vào tải lên mỗi lần người dùng chọn tệp để tải lên, dù sao để tự động thực hiện quy trình này?

Trả lời

0

FileUploadkhông hỗ trợ bất kỳ loại tự động tải lên tệp đã chọn lên máy chủ. Bạn sẽ phải cung cấp một số loại cơ chế - xem MSDN

Saving Uploaded tập tin

Các FileUpload kiểm soát không tự động lưu một tập tin đến máy chủ sau khi người sử dụng chọn các tập tin để tải lên. Bạn phải rõ ràng cung cấp kiểm soát hoặc cơ chế để cho phép người dùng gửi tệp được chỉ định . Ví dụ: bạn có thể cung cấp nút mà người dùng nhấp chuột để tải lên tệp. Mã bạn viết để lưu tệp được chỉ định sẽ gọi phương thức SaveAs, lưu nội dung của tệp vào đường dẫn được chỉ định trên máy chủ. Thông thường, phương thức SaveAs được gọi trong phương thức xử lý sự kiện cho một sự kiện tăng một bài đăng trở lại máy chủ. ...

0

Tôi có thể thực hiện điều đó bằng máy thu telerik. Tôi chắc chắn rằng bạn có thể tìm thấy một số công cụ miễn phí ở đâu đó mà làm điều đó với Ajax ràng buộc với bộ điều khiển.

http://demos.telerik.com/aspnet-mvc/razor/upload

3

Các tập tin kiểm soát tải lên hỗ trợ onchange sự kiện. Hy vọng rằng có thể được sử dụng để kích hoạt việc tải lên

<form name="upload" action="uploadfile.aspx" method="POST"> 
    <input name="myfile" type="file" onchange="UploadFile()" /> 
</form> 

<script> 
    function UploadFile() 
    { 
     //do validation here 
     document.forms['upload'].submit(); 
    } 
</script> 
0

tôi đã không sử dụng thư viện Microsoft.web nhưng nếu bạn có thể gọi hàm java script tự động sau khi các tập tin uploded sau đó bạn cũng có thể đạt được điều đó.

Nếu bạn có thể gọi founction javascript trong dòng này:

@Microsoft.Web.Helpers.FileUpload.GetHtml(initialNumberOfFiles: 1, includeFormTag: false, uploadText: "Upload File",allowMoreFilesToBeAdded:false) 
2

ASP:

<input type="file" onchange="this.form.submit();" name="fUpload"/> 

CodeBehind:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     System.Web.HttpPostedFile file = Request.Files["fUpload"]; 
     if (file != null && file.ContentLength > 0) 
     { 
      file.SaveAs(@"C:\dir\"+System.IO.Path.GetFileName(file.FileName)); 
     } 
    } 

} 

asp: FileUpload thay vì đầu vào:

ASP:

<asp:FileUpload runat="server" onchange="this.form.submit();" ID="fuFile"/> 

codebehind:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     if (fuFile.PostedFile.FileName != string.Empty && fuFile.PostedFile.ContentLength > 0) 
     { 
      fuFile.PostedFile.SaveAs(@"C:\dir\" + fuFile.FileName); 
     } 
    } 

} 
+0

câu trả lời này là rất tốt nhưng nếu tôi làm các nút không thể nhìn thấy hoặc tàn tật, reenabling nó trở lại (thông qua hộp kiểm hoặc tải trang) sẽ gây ra một nullRefrenceException là unhandled do lỗi mã người dùng. –

Các vấn đề liên quan