반응형
FormData 추가가 작동하지 않습니다.
로컬 Apache 웹 서버에 이미지를 업로드하기 위해 이 글을 썼습니다.input
요소를 HTML로 지정합니다.file
이 로그는 비어있지 않은 것으로 기록됩니다만,form_data
완전히 비어있나요?
$('#upload-image').change(function(e){
var file = e.target.files[0];
var imageType = /image.*/;
if (!file.type.match(imageType))
return;
console.log(file);
var form_data = new FormData();
form_data.append('file', file);
console.log(form_data);
$.ajax({
url: 'http://localhost/upload.php',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'POST',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
});
이건 내 거야upload.php
로컬 웹 서버에서
<?php
header('Access-Control-Allow-Origin: *');
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
$target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];
echo $target_path;
}
?>
그console.log(response)
반환된 결과 대신 PHP 파일의 모든 코드 행을 기록합니다.echo
formData 개체를 로깅하는 경우console.log(formData)
formData를 기록할 수 없기 때문에 항상 빈 상태로 반환됩니다.
보내기 전에 기록만 해야 한다면entries()
formData 객체의 엔트리를 가져오려면
$('#upload-image').change(function(e) {
var file = e.target.files[0];
var imageType = /image.*/;
if (!file.type.match(imageType)) return;
var form_data = new FormData();
form_data.append('file', file);
for (var key of form_data.entries()) {
console.log(key[0] + ', ' + key[1]);
}
$.ajax({
url: 'http://localhost/upload.php',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'POST',
success: function(response) {
console.log(response);
},
error: function(error) {
console.log(error);
}
});
});
내가 깨달은 건contentType: false
jQuery 1.7.0 이후에서만 동작합니다.따라서 올바른 jQuery 버전을 사용하고 있는지 확인하십시오.
언급URL : https://stackoverflow.com/questions/40062477/formdata-append-not-working
반응형
'programing' 카테고리의 다른 글
잭슨 JSON에서 JSON을 검증하는 방법 (0) | 2023.03.31 |
---|---|
Angular.js 클릭 시 요소 css 클래스를 변경하고 다른 요소를 모두 삭제하는 방법 (0) | 2023.03.31 |
Woocommerce 숍 페이지에서 제품 변형 이미지 가져오기 (0) | 2023.03.31 |
JSON 엔트리를 루프오버하려면 어떻게 해야 하나요? (0) | 2023.03.31 |
빈 ng-src는 이미지를 갱신하지 않습니다. (0) | 2023.03.26 |