我正在尝试通过Multer将文件上载到服务器。这段代码所做的只是创建文件夹,而不是文件。我还尝试使用github上的教程,但在前端我的代码也没有成功
<p class="font-weight-bolder mb-3">Upload Screenshot
<form enctype="multipart/form-data"></form><input id="uploadFile" type="file" name="image" />
</p>
代码AJAX
$('#uploadFile').on('change', function(){
var file = $(this).get(0).files[0];
console.log(typeof file);
console.log(file)
console.log(file.name)
var formData = new FormData();
formData.append('Upload', file, file.name);
$.ajax({
url: $(this).attr('action') || window.location.pathname + '/repr_screenshot',
type: "POST",
data: file,
cache: false,
processData: false,
success: function(data){
console.log("success")
},
error: function(data){
console.log("file not uploaded")
}
});
})
还有MAIN.JS
var multer = require('multer')
var storage = multer.diskStorage({
destination: 'views/repr/mixin/screenshots',
filename: '/file.png'})
var upload = multer({storage: storage,
onFileUploadStart: function (file) {
console.log(file.originalname + ' is starting ...')
}
});
router.post('/repr_screenshot', upload.single('image'), function (req, res, next) {
console.log(req.file);
return false;
})
我从前端获得的console.log输出:
文件
Capture.PNG
并且console.log(req.file)的输出为“未定义”
目标
和文件名
这两个属性都应该是函数
const storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "views/repr/mixin/screenshots");
},
filename: function (req, file, callback) {
callback(null, file.originalname);
},
});
const upload = multer({ storage: storage }).single("image");
router.post("/repr_screenshot", (req, res) => {
upload(req, res, (err) => {
if (err) {
console.log(err);
return res.end("error file uploading");
}
res.status(200);
});
});
让我知道,如果有任何问题。
更新:上传前目标文件夹应该存在。
我已将.single('file')
更改为.single('image')
作为您的字段名。
我正在尝试将文件上载到FTP服务器 正如我在这里发现的,如何将文件上传到FTP服务器?,我有以下代码:
我想上传一个文件到不同的服务器使用卷曲。我读过许多类似的问题,但我没有得到任何解决我的问题。下面是我现在得到的代码: 当我运行此脚本时,它将保持运行200秒,并以以下方式响应: Sep 17 20:56:58 xxxxx vsftpd[2613]:[user]确定登录:客户端“yyyyy” Sep 17 20:56:58 xxxxx vsftpd[2618]:[用户]FTP响应:客户端“YYYYY
我正在尝试重命名一个与multer上传的图像文件的请求参数。 下面是我的代码: 它的工作很好,但我想知道它是否存在一些更干净和更容易与multer重命名功能。 它已经尝试过这样的事情: 但它不起作用,因为req尚未填充(未定义)。 我使用httpie使用以下命令测试我的代码: 有没有可能使用multer的重命名功能来做我用FS做的事情?还是有更好的办法? 谢谢你的反馈。 托玛斯 编辑 使用Disk
问题内容: 好吧,这看起来很简单,确实如此。将文件下载到服务器所需要做的就是: 只有一个问题。如果文件很大,例如100mb,该怎么办?然后,您将耗尽内存,并且无法下载文件。 我想要的是一种在下载文件时将文件写入磁盘的方法。这样,我可以下载更大的文件,而不会遇到内存问题。 问题答案: 从PHP 5.1.0开始,支持通过传递流句柄作为参数来逐段编写: 从手册中: 如果 数据 [是第二个参数]是流资源,
我正在用phonegap和jQuery Mobile开发应用程序。我想从播放列表中选择音频文件,然后上传到服务器上。我有谷歌它,但没有链接显示选择音频文件然后上传到服务器上,我不想录制任何音频。我只想上传音频(那是在我的音乐文件夹或播放列表)在服务器上。请帮帮我.
我希望能够上传一个图像文件(。png,。jpg等..)到我的网络服务器(用ASPX运行IIS服务器),只使用HTML和AJAX。 代码如下: 我听说enctype="multipart/form-data"可以工作,但在我的情况下显然不行... 我应该怎么做才能让我的AJAX代码上传图像文件?