ajax 호출에서 양식없이 일반 데이터와 함께 파일 데이터를 추가하려면 어떻게해야합니까? 난 내 아약스 스크립트가 현재는FormData를 사용하지 않고 아약스 호출에서 파일 데이터를 추가하는 방법은 무엇입니까?
$("body").on("click", "#next-step", function(event){
$("#loader").show();
event.preventDefault();
var file = $("#upload_logo")[0].files[0];
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{
name : "my name",
},
file : {upload_logo : file},
contentType: false,
processData: false,
success: function(response)
{
$("#loader").hide();
alert(response);
}
})
});
나는 해결책을 발견하지만 내가 그것을
event.preventDefault();
var fdata = new FormData()
if($("#upload_logo")[0].files.length>0)
fdata.append("upload_logo",$("#upload_logo")[0].files[0])
$.ajax({
type: 'POST',
url: 'step-two.php',
data:{fdata},
일을하고 싶은 방법은 아니다 그리고 그것은 작동하지만, 내 질문은 만약에 내가 그냥 내 파일을 데이터에 추가하고 싶습니다. 어떻게해야합니까? 대신 FormData()를 사용하는 대신?
? 허용되는 파일 업로드 방법입니다. 다른 일을하는 것은 오래된 기술을 사용하고 있습니다. –
당신이 옳다는 것을 알고 싶습니다. 데이터 필드에 일반 입력 필드를 추가하는 것처럼 파일 필드를 추가하는 것이 가능하지 않습니까? 왜냐하면 나는 첫 번째 코드 파일 ({upload_logo : file})에서했던 것처럼 어디서나 찾을 수 없기 때문에 가능하지 않습니까? –
예, 파일 내부의 데이터가 POST 요청의 일부로 전송되도록하려면 FormData를 사용해야합니다. 데이터를 파일 내용과 함께 사용할 수도 있습니다. data : {name : 'my name', fileContent : fdata} –