第一种情况,可以正常上传文件,代码如下:
html:
=======================start===========
<form enctype="multipart/form-data" action="api/Upload/" method="post">
<input id="file" type="file" name="imgUploader" multiple />
<input id="submit"type="submit" name="submit" id="btnSubmit" value="Upload" />
</form>
======================end=====================
第二种情况,请求成功,但是文件没有上传上去,代码如下:
======================start====================
html:
<label for="file" class="btn btn-link" ng-click="vm.addjson()" style="font-size:10px;height:1px;margin:0px;padding-left:40px;">ファイル追加</label>
<input type="file" id="file" ngf-select="true" ng-model="file" style="display: none"/>
angularjs:
$scope.$watch('file', function (file) {
// alert($scope.file);
$scope.upload($scope.file);
});
$scope.upload = function (file) {
alert("upload= "+file.name);
Upload.upload( {
headers: {'Content-Type':undefined},
url:"api/Upload/",
method:"post",
fields: {'username': $scope.username},
file: file,
})
.progress(function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total);
// alert('progress: ' + progressPercentage + '% ' + evt.config.file.name);
})
.success(function (data, status, headers, config) {
alert("angularjs_qingqiuchenggong");
// alert('file ' + config.file.name + 'uploaded. Response: ' + ' congig======='+config.sites);
//添加文件
vm.addjson(file);
})
.error(function (data, status, headers, config) {
// alert('error status: ' + status);
vm.addjson(file);
})
};
==========================end=======================
两种方法使用共同的nodejs ,代码如下:
var Express = require('express');
var multer = require('multer');
var bodyParser = require('body-parser');
var path = require('path');
var app = Express();
app.use(bodyParser.json());
//app.use(Express.static(__dirname, "/static"));
app.use(Express.static(path.join(__dirname, '/static')));
var Storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "./json");
},
filename: function (req, file, callback) {
callback(null, file.originalname);
}
});
var upload = multer({ storage: Storage }).array("imgUploader", 3); //Field name and max count
app.get("/", function (req, res) {
res.sendFile(__dirname + "/index.html");
});
app.post("/api/Upload", function (req, res) {
upload(req, res, function (err) {
if (err) {
return res.end("Something went wrong!");
}
// return res.end("upload success!");
});
});
app.listen(2000, function (a) {
console.log("Listening to port 2000");
});
请问为什么使用使用上面第二种发法可以请求成功但是文件上传不上去呢?是我哪里写错了吗?帮我看一下,在线等,非常着急,谢谢了。