我们正在创建一个网页,我必须管理文件上传的内容。我正在使用iframe上传文件。但实际上我不知道使用这个会发生什么。在服务器端,我们使用Java。这是我的代码:
$(document).ready(function () {
$("#formsubmit").click(function () {
var iframe = $('<iframe name="postiframe" id="postiframe"></iframe>');
$("body").append(iframe);
var form = $('#theuploadform');
form.attr("action", "http://localhost:13000/auth/login");
form.attr("method", "post");
form.attr("encoding", "multipart/form-data");
form.attr("enctype", "multipart/form-data");
form.attr("target", "postiframe");
form.attr("file", $('#userfile').val());
form.submit();
$("#postiframe").load(function () {
var iframeContents = this.contentWindow.document.body.innerHTML;
$("#textarea").html(iframeContents);
});
return false;
});
});
(我从网上复制了代码,但我不明白。)
有人能告诉我点击提交按钮会发生什么吗?正在发送什么?文件是字节吗?当我想编写我们的服务器端java处理程序时,我需要理解这一点。我想我花了太多时间试图理解这一点。
首先,我认为我们可以通过jQuerys POST方法发送文件,因为它用于用户身份验证。但事实并非如此。
- 对于后端,您需要控制器来捕获http请求和一个具有属性的java类:
假设您的java类名为File.java
private List<MultipartFile> file;
String saveDirectory = System.getProperty("catalina.home");
List<MultipartFile> ListaFajlova = File.getFile();
List<String> fileNames = new ArrayList<String>();
if (null != ListaFajlova && ListaFajlova.size() > 0) {
for (MultipartFile multipartFile : ListaFajlova) {
String fileName = multipartFile.getOriginalFilename();
if (!"".equalsIgnoreCase(fileName)) {
multipartFile
.transferTo(new File(saveDirectory + File.separator+fileName));
fileNames.add(fileName);
}
}
}
通过这种方式,您可以将文件保存在saveDirectory中,并获得保存在数据库中的文件名列表,以便于访问。
希望这能有所帮助。