-1
我有一個快遞服務器正在運行,我想上傳一個沒有html <form>
標記的圖像(<input type="file">
)。這甚至有可能嗎?如何將圖像上傳到沒有表單的節點js服務器?
我使用這個功能時,其值已更改爲從輸入得到的文件:
我有一個快遞服務器正在運行,我想上傳一個沒有html <form>
標記的圖像(<input type="file">
)。這甚至有可能嗎?如何將圖像上傳到沒有表單的節點js服務器?
我使用這個功能時,其值已更改爲從輸入得到的文件:
您可以試着FormData API。下面是使用jQuery的例子:
var data = new FormData();
data.append('image', input.files[0]);
$.ajax({
url: '/foo',
data: data,
contentType: false,
processData: false,
success: function(response) {
alert('Image uploaded!');
},
error: function(jqXHR, textStatus, errorMessage) {
alert('Error uploading: ' + errorMessage);
}
});
客戶端:
var image = $("#imageid")[0].files[0];
var formdata = new FormData();
formdata.append('image', image);
$.ajax({
url: '/uploads/',
data: formdata,
contentType: false,
processData: false,
type: 'POST',
'success':function(data){
alert(data);
}
});
服務器端: 使用multer
var express = require('express');
var router = express.Router();
var path = require("path");
var multer = require("multer");
var uploading = multer({
dest: './public/uploads/'
});
router.post('/', uploading.single('image'),function(req, res) {
console.log(req.file);
res.send(req.file);
});
module.exports = router;
輸出: 服務器端:
{ fieldname: 'image',
originalname: 'Untitled.png',
encoding: '7bit',
mimetype: 'image/png',
destination: './public/uploads/',
filename: 'bde1b15ba5b62b4106f86b49c73720ea',
path: './public/uploads/bde1b15ba5b62b4106f86b49c73720ea',
size: 52375 }
希望這有助於!
你可以請添加服務器端的一部分?我無法得到它的工作...... :( –
解決了我的問題!我追加的不僅僅是文件,而且像{key:「lorem」,img:input.files [0]}這樣的對象,並且這些文件沒有在req.files中顯示。感謝您的幫助;) –