나는 jQuery ajax와 같은 방식으로이 작업을 수행하는 방법에 대해 궁금합니다. 지금 나는 jQuery UI 대화 상자 팝업이 있고 그것에 HTML 입력 파일이있다.jQuery를 통해 파일을 업로드하는 방법은 무엇입니까?
사용자가 가져 오기를 클릭하면 jQuery를 사용하여 서버에 아약스 게시물을 게시하려고합니다.
내 동작보기로 파일을 전달하는 방법을 잘 모르겠습니다.
는 지금은
그래서public ActionResult Import(HttpPostedFileBase file)
내가 jQuery를하고 함께 HttpPostedFileBase에 전달하는 방법을 잘 모르겠습니다 그래서 내 컨트롤러에서 다음이
<% using (Html.BeginForm("Import", "Controller", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<br />
<p><input type="file" id="file" name="file" size="23 accept="text/calendar"></p><br />
<p><input type="submit" value="Upload file" /></p>
<% } %>
이 그것을 다시 전체 게시물을하고있다 jQuery에서 enctype = "multipart/form-data"
을 설정하는 방법.
편집이 좋아 잘 jQuery를 양식 플러그인은 길을 가야하는 것 같다.
$('#frm_ImportCalendar').livequery(function()
{
var options = {
dataType: 'json',
success: function(response)
{
alert(response);
}
};
$(this).ajaxForm(options);
});
내 json이 작동하지 않는 이유가 궁금 해서요. 누군가 당신이 언급 한대로 그대로 사용할 수 없습니다. 누군가가 json을 사용할 수 있었던 다른 링크를 확인하고 있습니다.
Lck에서 ajax 제출 메소드 전에 .submit을 사용하는 이유는 확실하지 않습니다.
편집
어떻게 내 사전 배열을 반환하는 파일 업로드 JSON 결과를 바꿀 수 있을까?
Dictionary<string, string> result = new Dictionary<string, string>();
result.Add("Msg", "Success!!");
result.Add("Body", calendarBody);
// how can I change this?
return new FileUploadJsonResult { Data = new { message = string.Format("{0} uploaded successfully.", System.IO.Path.GetFileName(file.FileName)) } };
콜백 함수에 메시지를받을 수 있습니다. 나는 비슷한 것을했지만 ID ID는 지정하지 않았다. 지금까지 내가 가지고있는 것을 편집하십시오. – chobo2
Javascript는 보안상의 이유로 파일을 업로드 한 요청의 데이터 형식으로 JSON을 받아 들일 수 없습니다 (jQuery 양식 웹 페이지에 설명되어 있음). JSON과 jQuery로 사용하기가 아주 간단한 XML을 사용 하시길 바랍니다. 또는 개행 문자로 구분 된 일반 텍스트로 된 값을 사용하는 것이 좋습니다. .ajaxSubmit을 명시 적으로 사용했습니다. 왜냐하면 내가 양식을 사용하여 프로젝트의 일부 코드에서 예제를 얻었 기 때문입니다. 어쨌든 코드와 실질적으로 동일해야합니다. – LorenzCK
이 XML은 어떻게 생겼을까요? Json 결과로 변환 한 사전 컬렉션을 게시하여 어떻게 XML로 변환 할 수 있습니까? – chobo2