https://github.com/blueimp/jQuery-File-Upload을 사용하고 있는데 파일을 업로드하여 지정한 폴더에 저장 한 다음 Json 객체를 반환했습니다. 그런 다음 브라우저 (IE8 사용)에서 "파일 다운로드"대화 상자가 열리고 확장명이 "upload75bea5a4"인 파일을 다운로드하라는 메시지가 표시됩니다. 나는 무엇이 잘못되었는지를 알 수 없었다.jQuery File Upload 플러그인이 파일을 다운로드하라는 메시지를 표시합니다. 무엇이 잘못 되었습니까?
2
A
답변
7
동일한 플러그인을 사용하고 있으며 문제없이 작동합니다. 내가 사용하고있는 코드를 게시하여 도움을 드릴 것입니다. Scott Hanselman's blog에서 본 C# 코드 (몇 가지 변경 사항이 있음).
파일의 속성을 저장하는 클래스 :
public class ViewDataUploadFilesResult
{
public string Name { get; set; }
public int Length { get; set; }
public string Type { get; set; }
}
업로드 코드, 아약스에 의해 호출됩니다
[HttpPost]
public string UploadFiles()
{
var r = new List<ViewDataUploadFilesResult>();
Core.Settings settings = new Core.Settings();
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Path.Combine(settings.StorageLocation + "\\Files\\", Path.GetFileName(hpf.FileName));
hpf.SaveAs(savedFileName);
r.Add(new ViewDataUploadFilesResult()
{
Name = hpf.FileName,
Length = hpf.ContentLength,
Type = hpf.ContentType
});
}
return "{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}";
}
마법 만드는 자바 스크립트 조각 :
을$('#file_upload').fileUploadUI({
uploadTable: $('#files'),
downloadTable: $('#files'),
buildUploadRow: function (files, index) {
return $('<tr><td>' + files[index].name + '<\/td>' +
'<td class="file_upload_progress"><div><\/div><\/td>' +
'<td class="file_upload_cancel">' +
'<button class="ui-state-default ui-corner-all" title="Cancel">' +
'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
'<\/button><\/td><\/tr>');
},
buildDownloadRow: function (file) {
return $('<tr><td>' + file.name + '<\/td><\/tr>');
}
});
살펴보고 몇 가지 검사를하십시오.
-
편집
0
FAQ에서이 부분을 발견했습니다. # 2 https://github.com/blueimp/jQuery-File-Upload/wiki/Frequently-Asked-Questions
요점은 HTTP_ACCEPT 헤더가 존재하지 않는 또는 '응용 프로그램/JSON'(XHR 업로드에 iframe을 추론)을 포함하지 않는 경우 일반/텍스트 내용 유형을 설정하는 것입니다 참조하십시오.
+1 enctype = "multipart/form-data"에 대한 Sousa의 알림 - 콘텐츠 유형뿐만 아니라 그 내용도 조사했습니다.
0
나는 동일한 문제가있었습니다. 닷넷의 경우 돌아 오는 MVC의 내용 유형을 확인하기위한 코드는 다음과 같습니다
if (Request.ServerVariables["HTTP_ACCEPT"] != null && Request.ServerVariables["HTTP_ACCEPT"].Contains("application/json"))
{
return Json(data, "application/json");
}
else
{
return Json(data, "text/plain");
}
은 분명히 IE가
Content-type: text/plain
하지만
text/plain
을 좋아하지 않는다.
희망을 통해 누군가 더 많은 두통을 피할 수 있기를 바랍니다.
관련 문제
- 1. PHP 문제가 무엇이 잘못 되었습니까?
- 2. 아래 코드에 무엇이 잘못 되었습니까
- 3. upload file codeigniter
- 4. File Upload with RequestBuilder
- 5. java ftp file upload
- 6. Android File Upload
- 7. 내 백그라운드 작업 방법에 무엇이 잘못 되었습니까?
- 8. jQuery jCorner 플러그인이 작동하지 않습니다 - 무엇이 누락 되었습니까?
- 9. 이 간단한 코드는 무엇이 잘못 되었습니까?
- 10. Readonly 대 내 코드에서 무엇이 잘못 되었습니까?
- 11. 이 MySQL 문은 무엇이 잘못 되었습니까?
- 12. 이 403 오류 리디렉션 무엇이 잘못 되었습니까
- 13. 이 IllegalArgumentException을 얻으려면 Java에서 무엇이 잘못 되었습니까?
- 14. 내 버전의 _bittestandset에 무엇이 잘못 되었습니까?
- 15. 이 SQL 문에 무엇이 잘못 되었습니까
- 16. PHP 클래스에서 오류가 발생했습니다. 무엇이 잘못 되었습니까?
- 17. 변환기를 사용하여 TemplateBinding - 무엇이 잘못 되었습니까?
- 18. 이 Facebook 로그인 코드는 무엇이 잘못 되었습니까?
- 19. OCaml 초보자에게 도움이 필요합니다 : 무엇이 잘못 되었습니까?
- 20. 이 프로토콜 선언은 무엇이 잘못 되었습니까?
- 21. return Json은 컨트롤러에주는 대신 Json을 다운로드하라는 메시지를 표시합니다.
- 22. jQuery : "A undefined"오류가 발생하고 JSLint에서 "jQuery (...)가 잘못 호출되었습니다."여기에 무엇이 잘못 되었습니까?
- 23. iPhone File Upload with HTML
- 24. JS/jQuery 코드가 잘못 되었습니까?
- 25. 과제가 잘못 되었습니까?
- 26. 이 Fortran '77 스 니펫은 무엇이 잘못 되었습니까?
- 27. JQuery 'Uploadify'File Upload Plugin
- 28. Python 색인이 범위를 벗어나 오류가 발생했습니다. 무엇이 잘못 되었습니까?
- 29. php.ini 경로가 잘못 되었습니까?
- 30. 무엇이 잘못 되었나요?
데이비스, 고맙습니다. 자바 스크립트 파일 "jquery.fileupload-ui.js"94에서 예외가 발생했습니다. 처리되지 않은 예외가 있음을 말합니다. 어떤 아이디어? –
해당 예제 페이지에 **
그래, 거기에 그 라인이있다. 응답 내용 유형에 특별한 작업을 수행 했습니까? –