我试图通过选项,但不知道如何在服务器端处理它们。加载文件没有问题。 我创建了一个表单:
webix.ui({
view: "form",
borderless: true,
elements: [
{view: "text", label: 'User', name: "user",invalidMessage:"User can not be empty"},
{view: "text", label: 'Name', name: "name",invalidMessage:"Name can not be empty"},
{view: "text", label: 'Email', name: "email",invalidMessage:"Incorrect e-mail address"},
{view: "text", label: 'Key', name: "key",invalidMessage:"Key can not be empty"},
{
view:"uploader",
id: "fileUploader",
value:"Upload key",
autosend:false,
upload:"api/upload"
},
{
view: "button", value: "Submit", click: function () {
var form = this.getParentView();
if (form.validate()){
var values = this.getParentView().getValues();
$$('fileUploader').send(function(res){
},{
fileName:values.user
});
}
}
}
],
rules:{
"user": webix.rules.isNotEmpty,
"name": webix.rules.isNotEmpty,
"email": webix.rules.isEmail,
"key": webix.rules.isNotEmpty
},
elementsConfig: {
labelPosition: "top"
}
});
我正在使用服务器node.js
app.post('/api/upload/', function(req,res) {
fs.readFile(req.file.path, function (err, data) {
var newPath = __dirname + "/uploads/"+req.file.originalname;
fs.writeFile(newPath, data, function (err) {
res.send("ok");
fs.unlink( __dirname + "/uploads/"+req.file.filename);
});
});
}
);
或者在send()之前有没有更改名称的选项?
答案 0 :(得分:0)
文件名只读,无法更改 https://developer.mozilla.org/en-US/docs/Web/API/File
您的服务器端代码可以优化,而不是fs.readFile,fs.writeFile,fs.unlink为什么不使用fs.rename。用于将上载文件移动到正确名称和位置的单个命令。
答案 1 :(得分:0)
我尝试在发送文件之前更改名称但不能。
这样:
function renameFile(req, res)
{
var name = post.name;
var type = post.type
fs.rename(__dirname+'/'+name, __dirname+'/'+createStringDate(name), function(err) {
if ( err )
{
console.log("!!!***LOG_:renameFile-Error(500): ".red+err);
res.status(500).json(err);
}
else
{
console.log("***LOG_:renameFile-Respuesta(200): Archivo renombrado.".magenta);
res.status(200).json("Estatus:Ok");
}
});
};
function createStringDate()
{
//create string date
return "yyyymmdd"
}
JS文件必须保存在保存文档的文件夹中。