我在使用ASP製作圖片上傳器時遇到了問題。我想使用ajax將圖像上傳到項目文件夾。Ajax圖片上傳者問題
我的HTML和JS:
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<br />
<br />
<a href="#" id="btnImg" onclick="uploadImg()" runat="server">UPLOAD</a>
</div>
</form>
<script>
function uploadImg(){
var formData = new FormData();
formData.append('FileUpload1', $('#btnImg')[0].files[0]);
$.ajax({
type: "POST",
url: 'Default.aspx/imageUpload',
data: formData,
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
}
});
}
</script>
我的圖片上傳代碼(C#):
[WebMethod]
protected void imageUpload(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
Guid _fileNameRandom = Guid.NewGuid();
string _fileNameStr = _fileNameRandom.ToString();
FileUpload1.PostedFile.SaveAs(Server.MapPath("/Images/") + (_fileNameStr + fileName));
Response.Redirect(Request.Url.AbsoluteUri);
}
}
控制檯我得到以下錯誤: 遺漏的類型錯誤:無法讀取屬性 '0' 的undefined at uploadImg(Default.aspx:32) at HTMLAnchorElement.onclick(Default.aspx:21)
defau中的第32行lt.aspx是:});的js腳本。 和第21行是:function uploadImg(){
希望任何人都可以幫我解決這個問題。
這行是問題:'$('#btnImg')[0] .files [0]',雖然目前還不清楚爲什麼。你選擇一個文件後是否運行這段代碼? –
你能更精確嗎? :) – mheonyae