vue.js - 在 Nuxt 中使用 Filepond 上传的图像在哪里?
问题描述
我试图在 nuxt 中使用 vue-filepond 上传图像,我在我的 contact-form.vue 中设置了 filepond,如下所示:
<file-pond
name="file"
ref="pond"
class-name="my-pond"
label-idle="Drop files here..."
allow-multiple="true"
instantUpload="true"
chunkUploads="true"
chunkSize= 2500
accepted-file-types="image/jpeg, image/png"
server="http://localhost/upload"
v-bind:files="files"
v-on:init="handleFilePondInit"
/>
在方法中:
handleFilePondInit: function() {
console.log('FilePond has initialized');
// FilePond instance methods are available on `this.$refs.pond`
},
Filepond 说上传完成,但我在 Nuxt 文件夹中创建的上传文件夹中没有图像......我需要将 Filepond 与 Axios 耦合吗?如果有人知道我能做到这一点的最好方法吗?
解决方案
您不能在本地上传它http://localhost/upload
,因为没有服务器在此端点等待上传。您需要为此提供服务,并且不能只上传这样的文件(据我所知)。即使它以某种方式工作,你也不能让它在生产中工作,因为人们在访问你的网站时不会有本地主机。
查看Vue 框架文档页面,需要传递一个server
prop。然后,您几乎可以根据需要对其进行配置,或者在您自己拥有文件时自行发布,这要归功于this.$refs.pond.getFiles()
.
API Server 文档给出了一些配置示例:
FilePond.setOptions({
server: {
url: 'http://192.168.0.100',
timeout: 7000,
process: {
url: './process',
method: 'POST',
headers: {
'x-customheader': 'Hello World'
},
withCredentials: false,
onload: (response) => response.key,
onerror: (response) => response.data,
ondata: (formData) => {
formData.append('Hello', 'World');
return formData;
}
},
revert: './revert',
restore: './restore/',
load: './load/',
fetch: './fetch/'
}
})
它不是直接的 Vue,但您几乎可以使用server
prop 以相同的方式一对一映射它。
抱歉,如果我不能提供更多帮助,但这完全取决于您打算如何做以及您打算上传到哪里(如果是 AWS S3 或其他)。
您可以检查此配置以获得server
道具的一些灵感。
推荐阅读
- sql-server - SQL 仅将文件从驱动器读取到字节数组中
- javascript - 尝试使用 `gatsby-source-mongodb` 从 MongoDB 获取数据到 Gatsby
- tensorflow - TensorFlow Estimator InvalidArgumentError
- javascript - SPA .netCore Angular 5:未捕获的参考错误:未定义 jQuery
- c++ - 从 mozilla.rsa 文件中解析插件 ID
- php - php 7.1 更新后显示 json_encoded 对象不起作用
- docker - Docker 容器中的 Runit 不传递环境变量
- java - 使用 editText.setSelection(position); 定义光标位置时应用程序崩溃;
- ios - WKWebView 仅显示苹果网站
- javascript - 在插入符号位置的 iframe 中插入图像