我想使用 jQuery 上传文件并存储在服务器上的文件夹中。我不知道如何开始。文件路径还需要存储在 Oracle 数据库中。我的整个场景都是基于实体框架的。有谁知道如何解决这个问题?
问问题
660 次
2 回答
1
使用此插件进行 jquery 文件上传。
或者,使用这个——
http://blueimp.github.com/jQuery-File-Upload/
或者,在 -- 找到一些更体面的插件
http://www.tutorialchip.com/jquery/9-powerful-jquery-file-upload-plugins/
于 2012-06-28T11:01:15.547 回答
0
如果您不想使用任何插件,您可以在 jquery 中使用 iframe 轻松上传文件。很多天以来我都面临着这个问题,现在我已经解决了。
$(document).ready(function () {
$("#formsubmit").click(function () {
var iframe = $('<iframe name="postframe" id="postframe" class="hidden" src="about:none" />');
$('div#iframe').append(iframe);
$('#theuploadform').attr("action", "/ajax/user.asmx/Upload")
$('#theuploadform').attr("method", "post")
$('#theuploadform').attr("userfile", $('#userfile').val())
$('#theuploadform').attr("enctype", "multipart/form-data")
$('#theuploadform').attr("encoding", "multipart/form-data")
$('#theuploadform').attr("target", "postframe")
$('#theuploadform').submit();
//need to get contents of the iframe
$("#postframe").load(
function () {
iframeContents = $("iframe")[0].contentDocument.body.innerHTML;
$("div#textarea").html(iframeContents);
}
);
<div id="uploadform">
<form id="theuploadform" action="">
<input id="userfile" name="userfile" size="50" type="file" />
<input id="formsubmit" type="submit" value="Send File" />
</form>
</div>
<div id="iframe" style="width: 0px; height: 0px; display: none;">
</div>
<div id="textarea">
</div>
它将上传文件。现在唯一剩下的就是在您的服务器上接收该文件。我已经使用 servlet 来获取文件,然后我调用了一项服务。该示例适用于每个文件图像、文本、docx、doc 等。
小服务程序:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
ServletFileUpload upload = new ServletFileUpload();
response.setContentType("text/plain");
//response.setContentType("application/msword");
FileItemIterator iterator = upload.getItemIterator(request);
while (iterator.hasNext()) {
FileItemStream item = iterator.next();
String filename = item.getName();
InputStream stream = item.openStream();
//more here you wanna to do with that file do.
}
}
catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
享受...
于 2013-05-08T04:36:34.367 回答