想循环上传每个文件,循环第一次时isrepeat参数为true,拿到第一次循环上传成功后台返回的路径,作为往下循环的pathList,并且往下循环isrepeat参数为false,思路有点凌乱乱...
upload(data,action) { let formData = new FormData() data.forEach((item) => { formData.append('fileList', item) if (data.length === 1 || action === 'fileUpload') { //单文件 formData.append('pathList', item.name) } else { formData.append('pathList', item.webkitRelativePath) } formData.append('pid', this.currentNodeKey) formData.append('isrepeat', true) this.$myHttp({ method: 'post', url: this.prefix + '/doc/docDir/uploadHtml2Public', data: formData, headers: { 'Authorization': 'Sys ' + sessionStorage.getItem('token'), 'showLoading': 'true' } }).then((res) => { this.refreshTree() }).catch((error) => { console.log(error) }) }) }
首先,从你的代码中可以看到,你正在使用循环来上传文件,并且在每次上传时,你都在 formData
对象中添加了新的参数。然后,你使用 this.$myHttp
方法发送一个 POST 请求。
然而,你的代码中存在一些问题。在每次循环中,你都创建了一个新的 formData
对象,这会导致每次循环都发送一个新的 POST 请求,而不是按照你的预期那样,一次循环发送一个文件。
另外,你在每次循环中都添加了 isrepeat
参数,这可能不是你想要的。你可能只想在第一次循环时设置 isrepeat
为 true
,然后在后续的循环中将其设置为 false
。
以下是一个可能的解决方案:
upload(data, action) { let formData = new FormData(); let isrepeat = true; // 初始化 isrepeat 为 true data.forEach((item, index) => { formData.append('fileList', item); if (data.length === 1 || action === 'fileUpload') { formData.append('pathList', item.name); } else { formData.append('pathList', item.webkitRelativePath); } formData.append('pid', this.currentNodeKey); formData.append('isrepeat', isrepeat); // 根据索引设置 isrepeat 的值 this.$myHttp({ method: 'post', url: this.prefix + '/doc/docDir/uploadHtml2Public', data: formData, headers: { 'Authorization': 'Sys ' + sessionStorage.getItem('token'), 'showLoading': 'true' } }).then((res) => { if (index === data.length - 1) { // 如果是最后一次循环,刷新树状结构 this.refreshTree(); } }).catch((error) => { console.log(error); }); isrepeat = false; // 在每次循环的末尾将 isrepeat 设置为 false });}
在这个修改后的代码中,我保留了 isrepeat
参数的逻辑,并在每次循环的末尾将其设置为 false
。同时,我也添加了一个检查,以确保在处理完所有文件后刷新树状结构。这样就可以解决你的问题。
问题内容: 我有以下代码片段。 上面的代码用于生成5个链接,并将每个链接与警报事件绑定以显示当前链接ID。但这是行不通的。当您单击生成的链接时,它们都说“链接5”。 但是以下代码段符合我们的预期。 这里引用了以上两个片段。 但是它是如何工作的以及 关闭 是如何工作的,这些都是我无法理解的。为什么第一个不起作用而第二个却起作用?任何人都可以对魔术进行详细说明吗? 谢谢。 问题答案: 解释第一个示例:
elementplus表格,如下图有两条数据,每行有多个city和address循环展示在一行,前端该怎么处理呢,返回数据格式如下
我是java的新手,我正在编写这个简短的程序,您可以在其中猜测1到10之间的数字。正确的数字存储为整数。如果您猜测较低的数字,它应该说“正确的数字较高”,如果您猜测较高,它应该说“正确的数字较低”。这是我所拥有的: 所以很明显这是行不通的,因为如果你输入一个更小的数字,它会跳到下一个数字,即使这个数字更大,它也是正确的。那么,我如何解决这个问题,让它检查两个语句呢?抱歉解释得不好。谢了。
请问下uniapp打包成app怎么上传图片,可以用chooseImage上传图片吗,chooseImage是不是已经被淘汰了,新版的chooseMedia不支持
问题内容: 专家。JavaScript无法产生所需的延迟效果。 从其他问题上,我因此知道,问题在于settimeout及其使用方式。但是我仍然无法理解Settimeout的工作原理。所以我将代码放在这里。由于知识目的,仅需使用Javascript。 实际上,我正在尝试清除有关 此的 概念,即javascript中的 闭包 。它们是Java的扭曲事物吗? 问题答案: 您有两个问题: 调用回调时将具有
主要内容:JS break 语句,JS continue 语句,JavaScript 标签通过前面对循环的学习我们知道,默认情况下循环会在表达式结果为假时自动退出循环,否则循环会一直持续下去。某些情况下,我们不用等待循环自动退出,可以主动退出循环,JavaScript 中提供了 break 和 continue 两个语句来实现退出循环和退出(跳过)当前循环,下面我们就来详细介绍一下。 JS break 语句 在学习《 JS switch case语句》时我们已经简单了解过了 break