gpt4 book ai didi

ajax - Play Framework :Ajax + 拖放 + 文件上传 + Controller 中的文件对象?

转载 作者:行者123 更新时间:2023-12-03 20:19:27 25 4
gpt4 key购买 nike

有谁知道通过 Ajax 上传文件并使用桌面拖放支持 PlayFramework 将文件上传转换为 File 对象的能力的方法?

我尝试了几种不同的方法,但都没有正常工作。

最佳答案

这是我的成功尝试:

编辑路由文件并添加

POST    /upload                                 Application.upload

我们的 Controller 是 Application ,我将使用它来保持简单。

编辑您的应用程序 Controller 类
public static void upload(String qqfile) {


if (request.isNew) {

FileOutputStream moveTo = null;

Logger.info("Name of the file %s", qqfile);
// Another way I used to grab the name of the file
String filename = request.headers.get("x-file-name").value();

Logger.info("Absolute on where to send %s", Play.getFile("").getAbsolutePath() + File.separator + "uploads" + File.separator);
try {

InputStream data = request.body;


moveTo = new FileOutputStream(new File(Play.getFile("").getAbsolutePath()) + File.separator + "uploads" + File.separator + filename);
IOUtils.copy(data, moveTo);

} catch (Exception ex) {

// catch file exception
// catch IO Exception later on
renderJSON("{success: false}");
}

}


renderJSON("{success: true}");
}

编辑 app/views/Application 文件夹/包中的 Application.html
#{extends 'main.html' /}
#{set title:'Multiple Uploads' /}

<div id="file-uploader">
<noscript>
<p>Please enable JavaScript to use file uploader.</p>
<!-- or put a simple form for upload here -->
</noscript>

<script>
function createUploader(){
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: '/upload',
debug: true
});
}

// in your app create uploader as soon as the DOM is ready
// don't wait for the window to load
window.onload = createUploader;
</script>
</div>

编辑您的主布局:main.html,位于 app/views 文件夹/包中,并在 jQuery 之后添加这一行
<script src="@{'/public/javascripts/client/fileuploader.js'}" type="text/javascript"></script>

最后的笔记
记得从 AJAX Upload Valums 下载脚本, 请享用!

您也可以 grab the source here .

我在不同的浏览器中对其进行了测试,它至少对我有用。归功于 Riyad in Play!向我暗示 request.body 的邮件列表

P.S:我使用的是我之前发布的评论

编辑
已按照 T.J. 的指示添加了带有代码的答案。克劳德,我同意:)

关于ajax - Play Framework :Ajax + 拖放 + 文件上传 + Controller 中的文件对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4867007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com