我正在ASP.NET中進行文件上傳。我用<input type=file id=upload>
和<input type=button id="btnupload" value="File Upload">
如何在沒有回傳的情況下使用JavaScript上傳文件?
我想用JavaScript上傳文件。更新面板不起作用,我不希望它回發並刷新頁面。
謝謝但如果你在JavaScript中有fileUpload相關的代碼然後發送給我。請幫幫我。
我正在ASP.NET中進行文件上傳。我用<input type=file id=upload>
和<input type=button id="btnupload" value="File Upload">
如何在沒有回傳的情況下使用JavaScript上傳文件?
我想用JavaScript上傳文件。更新面板不起作用,我不希望它回發並刷新頁面。
謝謝但如果你在JavaScript中有fileUpload相關的代碼然後發送給我。請幫幫我。
如果要防止頁面被刷新,請發送一個204 No Content
HTTP標頭。
如果您正在使用visual studio 2008(或者在05中安裝了ajax),那麼在您的輸入字段周圍包裝更新面板,這將使用javascript(ajax)異步回發。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
您可以使用jQuery和jQuery form plugin。我用這個組合的幾個項目,我沒有任何問題,即使是大文件(10MB)
<form action="form.asp" method="post">
.......
</form>
$('form').submit(function(){
$(this).ajaxSubmit(function(data){
$('#updateDiv').html(data); // or append/prepend/whatever
})
return false
})
Ofcourse,形式的作用將返回你需要更新的內容。你可能想添加一些額外的功能來處理錯誤,但這應該工作正常
感謝lonut Staicu,但是如果你給我一些我可以正確理解的例子。 – 2009-02-16 05:38:48
我已經用示例更新了我的帖子 – 2009-02-16 08:58:18
我不確定使用ASP.NET的「正確」的方式,但通常你會想要你的表單,並且一個隱藏的iframe的形式員額:
<script type="text/javascript">
function handleUploadResponse(...) {
// do something...
}
</script>
<form method="post" action="upload.aspx" target="hiddenframe" enctype="multipart/form-data"></form>
<iframe id="hiddenframe" name="hiddenframe" style="display:none"></iframe>
當您提交表單,這將張貼到任何腳本將會處理在隱藏幀上傳。完成後,隱藏幀的頁面將調用window.parent.handleUploadResponse(...);
,該頁面在啓動上載的父頁面上調用handleUploadResponse()
函數。對於上傳功能(http://www.malsup.com/jquery/form/) 使用(http://www.fyneworks.com/jquery/multiple-file-upload/)爲指定多個文件的能力
使用jQuery表格插件上傳
這是它如何工作的,這個插件可以讓你發佈的數據到一個頁面,而不令人耳目一新的多文件插件可讓您通過瀏覽指定多個文件。
<form id="uploadForm" enctype="multipart/form-data" method="post" action="FileHandler.ashx">
<input type="hidden" value="100000" name="MAX_FILE_SIZE"/>
File:
<input type="file" name="file"/>
<input type="submit" value="Submit"/>
</form>
所以基本上上述小HTML提交給FileHandler.ashx,無論是在輸入框中(希望),在烏拉圭回合ASP項目中添加一個HTTP處理程序,少的代碼如下
<%@ WebHandler Language="C#" Class="FileHandler" %>
using System;
using System.Web;
using System.IO;
public class FileHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string strFileName = Path.GetFileName(context.Request.Files[0].FileName);
string strExtension = Path.GetExtension(context.Request.Files[0].FileName).ToLower();
string strSaveLocation = context.Server.MapPath("Upload") + "" + strFileName;
context.Request.Files[0].SaveAs(strSaveLocation);
context.Response.ContentType = "text/plain";
context.Response.Write("success");
}
public bool IsReusable
{
get
{
return false;
}
}
}
所有這就是失蹤從這裏是包括在你的aspx頁上的js腳本,我認爲:)祝你好運
它是否在Inner Update pannel中工作?因爲我已經使用了Upper Updatepannel,謝謝。 – 2009-02-16 05:40:49
你是指另一個更新面板中的更新面板? ..因此,我認爲它不會有所不同。 – Frost 2009-02-16 07:28:13