[JQUERY] asp.net MVC에 jQuery를 아약스 업로드 파일
JQUERYasp.net MVC에 jQuery를 아약스 업로드 파일
해결법
-
1.ASP.Net MVC에서 AJAX를 사용하여 파일 업로드
ASP.Net MVC에서 AJAX를 사용하여 파일 업로드
상황이 HTML5 이후 변경된
자바 스크립트
document.getElementById('uploader').onsubmit = function () { var formdata = new FormData(); //FormData object var fileInput = document.getElementById('fileInput'); //Iterating through each files selected in fileInput for (i = 0; i < fileInput.files.length; i++) { //Appending each file to FormData object formdata.append(fileInput.files[i].name, fileInput.files[i]); } //Creating an XMLHttpRequest and sending var xhr = new XMLHttpRequest(); xhr.open('POST', '/Home/Upload'); xhr.send(formdata); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { alert(xhr.responseText); } } return false; }
제어 장치
public JsonResult Upload() { for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFileBase file = Request.Files[i]; //Uploaded file //Use the following properties to get file's name, size and MIMEType int fileSize = file.ContentLength; string fileName = file.FileName; string mimeType = file.ContentType; System.IO.Stream fileContent = file.InputStream; //To save file, use SaveAs method file.SaveAs(Server.MapPath("~/")+ fileName ); //File will be saved in application root } return Json("Uploaded " + Request.Files.Count + " files"); }
편집 : HTML
<form id="uploader"> <input id="fileInput" type="file" multiple> <input type="submit" value="Upload file" /> </form>
-
2.AJAX 파일 업로드는 $ 아약스 요청의 데이터 속성에 FormData 객체를 전달하여 지금 가능합니다.
AJAX 파일 업로드는 $ 아약스 요청의 데이터 속성에 FormData 객체를 전달하여 지금 가능합니다.
영업 이익은 구체적으로 jQuery를 구현 요청으로, 여기 있습니다 :
<form id="upload" enctype="multipart/form-data" action="@Url.Action("JsonSave", "Survey")" method="POST"> <input type="file" name="fileUpload" id="fileUpload" size="23" /><br /> <button>Upload!</button> </form>
$('#upload').submit(function(e) { e.preventDefault(); // stop the standard form submission $.ajax({ url: this.action, type: this.method, data: new FormData(this), cache: false, contentType: false, processData: false, success: function (data) { console.log(data.UploadedFileCount + ' file(s) uploaded successfully'); }, error: function(xhr, error, status) { console.log(error, status); } }); });
public JsonResult Survey() { for (int i = 0; i < Request.Files.Count; i++) { var file = Request.Files[i]; // save file as required here... } return Json(new { UploadedFileCount = Request.Files.Count }); }
MDN에서 FormData에 대한 자세한 정보
-
3.당신은 아약스를 통해 파일을 업로드 할 수 없습니다, 당신은 전체 포스트 백을 수행하는 iframe이 또는 다른 속임수를 사용해야합니다. 이 보안 문제에 주로 기인한다.
당신은 아약스를 통해 파일을 업로드 할 수 없습니다, 당신은 전체 포스트 백을 수행하는 iframe이 또는 다른 속임수를 사용해야합니다. 이 보안 문제에 주로 기인한다.
여기 괜찮은 쓰기까지 스티브 샌더슨에 의해 SWFUpload와 ASP.Net MVC를 사용하여 샘플 프로젝트를 포함합니다. 그것은 희망이 당신을 위해 도움으로, 난이 Asp.Net MVC와 적절하게이 작업을 받고 (I가 아니라 시간에 MVC에 새로웠다)를 읽어 최초의 일이다.
-
4.나는 vuejs 버전에서이 같은 샘플을 가지고 : v2.5.2를
나는 vuejs 버전에서이 같은 샘플을 가지고 : v2.5.2를
<form action="url" method="post" enctype="multipart/form-data"> <div class="col-md-6"> <input type="file" class="image_0" name="FilesFront" ref="FilesFront" /> </div> <div class="col-md-6"> <input type="file" class="image_1" name="FilesBack" ref="FilesBack" /> </div> </form> <script> Vue.component('v-bl-document', { template: '#document-item-template', props: ['doc'], data: function () { return { document: this.doc }; }, methods: { submit: function () { event.preventDefault(); var data = new FormData(); var _doc = this.document; Object.keys(_doc).forEach(function (key) { data.append(key, _doc[key]); }); var _refs = this.$refs; Object.keys(_refs).forEach(function (key) { data.append(key, _refs[key].files[0]); }); debugger; $.ajax({ type: "POST", data: data, url: url, cache: false, contentType: false, processData: false, success: function (result) { //do something }, }); } } }); </script>
-
5.당신이 아약스를 사용하여 양식을 게시하는 경우에는 다음 당신은 할 수 없습니다 $ 아약스 방법을 사용하여 이미지를 전송, 당신은 이미지를 저장하기위한 고전 xmlHttpobject 방법을 사용해야합니다 그것의 다른 대안은 버튼 대신 유형을 제출 사용
당신이 아약스를 사용하여 양식을 게시하는 경우에는 다음 당신은 할 수 없습니다 $ 아약스 방법을 사용하여 이미지를 전송, 당신은 이미지를 저장하기위한 고전 xmlHttpobject 방법을 사용해야합니다 그것의 다른 대안은 버튼 대신 유형을 제출 사용
from https://stackoverflow.com/questions/2428296/jquery-ajax-upload-file-in-asp-net-mvc by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 자바 스크립트에서 시간 지연을 설정하는 방법 (0) | 2020.10.12 |
---|---|
[JQUERY] JSON 개체에 jQuery의 발견 ()를 사용 (0) | 2020.10.12 |
[JQUERY] JQuery와 AJAX의 GET 호출에서 요청 헤더 전달 (0) | 2020.10.12 |
[JQUERY] HTML 양식 데이터를 사용하여 JSON 개체를 보내는 방법 (0) | 2020.10.12 |
[JQUERY] C 번호와 ASP.NET MVC 3의 폭포 드롭 다운을 만들 수있는 가장 쉬운 방법 (0) | 2020.10.12 |