Angular JS到Java Play框架上传
我一直在努力使用Angular JS上传一个文件到我的Java Play Framework RESTful后端,因为我发现很多示例不适用于我 我相信我的Angular JS代码运行良好,但无论如何我都会与大家分享: 文件上传.htmlAngular JS到Java Play框架上传,java,angularjs,playframework,multipartform-data,Java,Angularjs,Playframework,Multipartform Data,我一直在努力使用Angular JS上传一个文件到我的Java Play Framework RESTful后端,因为我发现很多示例不适用于我 我相信我的Angular JS代码运行良好,但无论如何我都会与大家分享: 文件上传.html <div data-ng-controller="uploadCtrl"> <input type="file" file-model="myFile" id="theFile" name="theFile" /> <
<div data-ng-controller="uploadCtrl">
<input type="file" file-model="myFile" id="theFile" name="theFile" />
<button data-ng-click="uploadFile()">Upload</button>
</div>
文件上传repo.js
"use strict";
angular.module("pamm").service("fileUploadRepository", ["$q", "$log", "$rootScope", "contextEvent", "fileUploadDao",
function ($q, $log, $rootScope, contextEvent, fileUploadDao) {
var fileUploadCache = [];
(function init() {
$rootScope.$on(contextEvent.CLEAR_CONTEXT, function clearContext() {
fileUploadCache = [];
$log.info("fileUploadRepository: context cleared");
})
})();
this.uploadFile = function (file) {
var waitingDialog = $$dialog.waiting("Please wait - Uploading file");
var deferred = $q.defer();
fileUploadDao.uploadFile(file).then(function (uploadedFile) {
fileUploadCache.push(uploadedFile);
$log.debug("Repo: " + uploadedFile);
waitingDialog.close();
deferred.resolve(uploadedFile);
}, function (error) {
deferred.reject(error);
waitingDialog.close();
});
return deferred.promise;
};
}]);
从回购向上的层
"use strict";
angular.module("pamm").service("fileUploadDal", ["$http", "$q", "$log", function ($http, $q, $log) {
this.http = (function serviceCaller() {
return {
/**
* @returns {promise}
*/
POST: function (apiPath, fd) {
var deferred = $q.defer();
$http.post(apiPath, fd, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
}).then(function (results) {
deferred.resolve(results.data);
}, function (e) {
deferred.reject(e);
});
return deferred.promise;
}
}
})();
$log.info("fileUploadDal:serviceCaller Instantiated");
}]);
Java
Http.MultipartFormData file = request().body().asMultipartFormData();
下一步我该去哪里?因此,我无法访问HTML输入的名称,因为我的代码是以这种方式编写的
如何处理文件
将文件保存到我想要的目录中
谢谢,您试过这个吗:
import java.io.File;
File fileFromRequest = request.body().asRaw().asFile();
fileFromRequest.renameTo(new File("path/to/dir","filename.png"));
公共服务结果执行(最终Http.MultipartFormData请求)
{
final String DIRECTORY=“C:\\SAVE\u DIRECTORY\\SUB\u FOLDER\\uploads”;
List targetFiles=request.getFiles();
对于(int i=0;iimport java.io.File;
File fileFromRequest = request.body().asRaw().asFile();
fileFromRequest.renameTo(new File("path/to/dir","filename.png"));
public ServiceResult execute(final Http.MultipartFormData request)
{
final String DIRECTORY = "C:\\SAVE_DIRECTORY\\SUB_FOLDER\\uploads";
List<Http.MultipartFormData.FilePart> targetFiles = request.getFiles();
for (int i = 0; i < targetFiles.size(); i++)
{
File file = targetFiles.get(i).getFile();
String fileName = targetFiles.get(i).getFilename();
file.renameTo(new File(DIRECTORY, fileName));
}
return new ServiceResult(Json.toJson(targetFiles));
}