gpt4 book ai didi

java - PlayFramework - 如何上传文件/图像

转载 作者:太空宇宙 更新时间:2023-11-04 12:01:49 25 4
gpt4 key购买 nike

我想在我的网站上上传文件/图像。实际上我可以上传我的文件,但有时我的页面上会出现错误,我认为这不是执行此操作的好方法。

我的代码:

private String uploadImage()
{
String result = f.validate("avatar");
if(result.isEmpty())
return "none";
Http.MultipartFormData.FilePart<File> file = body.getFile("avatar");

if(file == null)
return "File is empty or not exist.";

String filename = file.getFilename();

/* Debug file file*/
Logger.debug("nameFile " + file.getFilename());
Logger.debug("contentFile " + file.getContentType());
/* End debug*/

File f = file.getFile();

/* Debug file f*/
String name = f.getName();
long totalSpace = f.getTotalSpace();
Logger.debug("nameF " + name);
Logger.debug("sizeF " + totalSpace);
/* End debug*/

try {
/* File user is not f file variable*/
File fileUser = getFileUser(filename);
Try.of(fileUser::delete);

/* Use of org.apache.commons.io*/
FileUtils.moveFile(f, getFileUser(filename));
} catch (IOException e) {
e.printStackTrace();
}
return "";
}

private File getFileUser(String fileName)
{
return new File("public/upload/avatars",
user.getId().toString() + "." + FilenameUtils.getExtension(fileName));
}

private boolean fileIsPicture(File f)
{
String mimetype = new MimetypesFileTypeMap().getContentType(f);
String type = mimetype.split("/")[0];
return (type.equals("image"));
}

错误:

java.io.FileNotFoundException: Source 'C:\Users\Alexis\AppData\Local\Temp\playtemp1188878075698565675\multipartBody8627595002998720963asTemporaryFile' does not exist

但是我有一些信息的调试(为什么要调试两次?):

[info] play.api.Play - Application started (Dev)
[info] application - avatar null
[debug] application - nameFile KwizzyPicture.jpg
[debug] application - contentFile image/jpeg
[debug] application - nameF multipartBody1959853090277810547asTemporaryFile
[debug] application - sizeF 763679993856
[info] application - avatar null
[debug] application - nameFile KwizzyPicture.jpg
[debug] application - contentFile image/jpeg
[debug] application - nameF multipartBody1959853090277810547asTemporaryFile
[debug] application - sizeF 0

Full code here

感谢您的帮助!我是法国人,很抱歉犯了错误。

最佳答案

您必须使用 FileInputStream 和 FileOutptStream 类

  Http.MultipartFormData.FilePart<File> file = body.getFile("avatar");

FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream(file);
//enter the file location in server
out = new FileOutputStream("output.jpeg");

int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}

关于java - PlayFramework - 如何上传文件/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831176/

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