下記のコードでhtmlから画像をアップロードしたいのですが、
開発環境 windows10 + visualstudio comminity 2017でだと正常にアップロードでき
本番環境 windows2012 r2 iis(8.5.9600.16384)だとエラーになってしまいます。
ディレクトリ自体の権限はIISuserがフルアクセスできるように設定済です。
JSでのエラーでは「失敗object object」 となってしまい、どこでエラーになっているかがわかりません
なにか考えられる方法、エラーの内容を受け取る方法を教授頂きたいです
よろしくお願いいたします
js
1//アップロード 2function upload() { 3 var data = new FormData(); 4 var fileUpload = $("#FileUpload1").get(0); 5 var files = fileUpload.files; 6 for (var i = 0; i < files.length; i++) { 7 data.append('photo', upload_blob, files[i].name); 8 } 9 //ディレクトリパス追加 10 data.append('dir', 'upload'); 11 var now = new Date(); 12 var strfilename = "" + now.getFullYear() + padZero(now.getMonth() + 1) + padZero(now.getDate()) + padZero(now.getHours()) + padZero(now.getMinutes()) + padZero(now.getSeconds()); 13 //年月日時分秒の文字列の作成(YYYYMMDDHHMMSS)これがファイル名に 14 data.append('comment', strfilename); 15 alert("Filename" + strfilename); 16 var options = {}; 17 options.url = "FileUploadHandler.ashx"; 18 options.type = "POST"; 19 options.data = data; 20 options.contentType = false; 21 options.processData = false; 22 options.success = function (result) { 23 //アップロード完了 24 alert("成功" + result); 25 }; 26 options.error = function (err) { 27 //アップロード失敗 28 alert("失敗" + err); 29 }; 30 event.preventDefault(); 31 $.ajax(options); 32}
asp.net
1<%@ WebHandler Language="C#" Class="FileUploadHandler" %> 2 3using System; 4using System.Collections.Generic; 5using System.Linq; 6using System.Runtime.Serialization; 7using System.Text; 8using System.Web; 9using System.Web.UI; 10using System.Web.UI.WebControls; 11using System.Web.Configuration; 12using System.Diagnostics; 13using System.IO; 14using System.Text.RegularExpressions; 15 16public class FileUploadHandler : IHttpHandler 17{ 18 19 public void ProcessRequest(HttpContext context) 20 { 21 22 try 23 { 24 25 26 if (context.Request.Form["dir"] != "") 27 { 28 29 if (context.Request.Files.Count > 0) 30 { 31 HttpFileCollection files = context.Request.Files; 32 33 for (int i = 0; i < 1; i++) 34 { 35 HttpPostedFile file = files[i]; 36 37 string txtcomment = context.Request.Form["comment"]; 38 string fname = txtcomment + ".jpg"; 39 string fnamepath = context.Server.MapPath("uploads/" + fname); 40 file.SaveAs(fnamepath); 41 42 } 43 44 } 45 46 context.Response.ContentType = "text/plain"; 47 context.Response.Write("Successfully!"); 48 49 } 50 } 51 catch (Exception e) 52 { 53 context.Response.Write("Failure!" + e.ToString()); 54 } 55 56 57 58 59 } 60 61 public bool IsReusable 62 { 63 get 64 { 65 return false; 66 } 67 } 68 69}
web.configの情報も追記します
文字制限のため、こちらにアップしました。
テストコードをアップ
テストコード
回答1件
あなたの回答
tips
プレビュー