javascript - FormData 没有得到任何响应
问题描述
之前,我设法使用 FormData 在文件目录中插入图像文件。但是现在,我现在尝试用于更新错误图像的 FormData 正在返回一个空数据,即使我传递了正确的参数/有效负载,这是一个object
. 我尝试使用 FormData.set 进行更新,甚至在 forEach 上进行了一些试验,但它们都不适合我。在 Quasar(类似于 Javascript 的 Bootstrap)中,我们获取rows
每个数据的 ,因此我们可以更新一行数据。我应该在 FormData 最终得到响应之前获得图像的行吗?
前端
<template>
<div>
<q-table
:filter="filter"
title="Test Section"
:data="dtdata"
:columns="columns"
row-key="TestId"
>
<q-tr slot="body" slot-scope="props" :props="props" class="cursor-pointer">
<q-td v-for="col in props.cols" :key="col.name" :props="props">
{{
col.value
}}
</q-td>
<q-td class="q-gutter-md">
<q-btn label="Edit" color="primary" @click.native="gatherData(props.row)" />
<q-btn label="Delete" color="red" @click.native="activateDel(props.row)" />
<q-btn label="Change Picture" color="green" @click.native="changeThisPic(props.row)" />
</q-td>
</q-tr>
</q-table>
</div>
</template>
<script>
methods: {
changeThisPic(row) {
this.editPic = true;
this.editData.testId = row.testId;
this.editData.testItemId = row.testItemId;
},
sendPicForUpdate() {
this.$store
.dispatch("UPDATE_PIC", {
testId: this.editData.testId,
uploadFile: this.editData.uploadFile,
testItemId: this.editData.testItemId
})
}
</script>
export default function (/* { ssrContext } */) {
const Store = new Vuex.Store({
mutations: {
UPDATE_PIC ({ commit }, payload) {
const formData2 = new FormData()
Object.entries(payload).forEach(([key, val]) => {
formData2.append(key, val)
})
axios
.put('http://localhost/MyComposer/', formData2, {
params: {
updateId: 2,
testId: payload.testId,
testItemId: payload.testItemId
}
})
.then(response => {
alert(response.data)
console.log(response)
})
.catch(error => {
console.log(error)
})
}
},
后端
<?php
if (isset($_GET['updateId']) && $_GET['updateId'] == 1) {
$data = file_get_contents('php://input');
$decoded = json_decode($data);
$testId = $decoded->{'testId'};
$sub = $decoded->{'subject'};
$question = $decoded->{'question'};
$answer = $decoded->{'answer'};
$testItem = $decoded->{'testItemId'};
$db->where('TestItemId', $testItem);
$arrayDir = array('FileLocation');
$uploaddir = $db->get('teachertest', null, $arrayDir);
$uploadfile = $uploaddir . $_FILES['uploadFile']['name'];
if (move_uploaded_file($_FILES['uploadFile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
if (!empty($sub)) {
$sdata = array(
'SubjectId' => $sub,
);
$db->where('TestId', $testId);
$newsub = $db->update('teachertest', $sdata);
if ($newsub) {
echo "Subject was changed and";
}
$tdata = array(
'Question' => $question,
'Answer' => $answer,
);
$db->where('TestId', $testId);
$newdb = $db->update('testdetails', $tdata);
if ($newdb) {
echo "Test item details were updated!";
}
}
?>
解决方案
推荐阅读
- php - 网站设计——360度环游——与橱窗的契合
- winforms - 从互操作 UserControl 访问 VB6 父窗体的 AmbientProperties.UserMode 属性
- javascript - Three.js - 从 BufferGeometry 中挤出某些顶点/面
- python-sphinx - 如何正确使用 Sphinx 侧边栏选项“globaltoc.html”生成可折叠菜单树
- r - rgeos::createPolygonsComment(oobj) 中的错误:在 R 中使用 geojsonio 的孤立洞
- javascript - 如果数据表中的值按行相同或使用javascript,我们可以合并两个更多单元格吗?
- php - 如何使用 Symfony 4 上传音乐
- python-3.x - 从文本文件中提取单词并打印 nettxt 行
- php - 通过 CURL 读取 cookie 的最佳方式是什么?
- python - 搜索值是否在 pandas paquet 格式的列中唯一的最佳方法是什么?