#javascript #file-io #fetch
Вопрос:
У меня возникает проблема, когда я пытаюсь передать свой файл из ввода html в сценарий js.
Вот мой html-ввод:
echo "<td scope="col"><input type="file" id="newImage" name="imageCategory" onchange="changeImageCategory('" . $category["product_category_id"]."', '".$category["image_path"] ."')">";
и это моя функция js:
async function changeImageCategory(categoryId, oldPath){
let formData = new FormData();
//let newImage = document.getElementById('newImage');
formData.append("imageCategory", newImage.files[0]);
console.log(formData);
await fetch('../PHP/requestUploadImageCategory.php?id=' encodeURI(categoryId) 'amp;oldPath=' encodeURI(oldPath),{
method: "POST",
data: formData,
headers: {
'content-type': 'multipart/form-data'
}
});
await displayCategory();
}
Я попытался утешить.войдите в «Новое изображение.файлы[0]»
И у меня в коде есть почти та же функция, которая работает и правильно возвращает имя моего файла в console.log.
Я действительно перепробовал все, может, кто-нибудь спасет меня, я очень опаздываю со своим проектом. Спасибо
Я также скопировал свою вторую функцию (эта работает!):
async function createCategory(){
let newCategoryName = document.getElementById('newCategoryName').value;
let formData = new FormData();
formData.append("NewImageCategory", NewImageCategory.files[0]);
await fetch('../PHP/requestAddCategory.php?name=' encodeURI(newCategoryName),{
method: "POST",
body: formData,
});
document.getElementById("NewImageCategory").value = "";
await displayCategory();
}
Комментарии:
1. Ключевое различие между этими двумя функциями, по-видимому, заключается в том, что вы делаете это в ту секунду, когда вы это делаете
document.getElementById('newCategoryName').value
. Вы пробовали добавить способ доступа .value в первую функцию?document.getElementById('newImage').value
2. спасибо за ваше сообщение во втором документе.getElementById(‘Имя новой категории’).значение предназначено для ввода текста. и да, я попробовал let newImage = document.getElementById(‘Новое изображение’); а также попробовал let newImage = document.getElementById(‘Новое изображение’).значение; ничего не работает