我几天都在努力做到这一点,绝对无处可去。我知道可以做到,但是我一直在搜索SO以获得答案而没有任何工作。
我尝试过: 关注Load_File doesn't work,我使用的是操作系统X,因此我不知道如何更改文件夹的所有权等...我该怎么做?我在上一篇文章中从未得到过有关此问题的答案。我该怎么做?
我也尝试过另一种方式:http://examples.javacodegeeks.com/enterprise-java/rest/jersey/jersey-file-upload-example/
这根本不起作用。我一直收到这篇文章中描述的错误:Jersey REST WS Error: "Missing dependency for method... at parameter at index X",但答案对我没有帮助,因为我还不知道它应该是什么......
有人可以指导我完成它吗?
我在Java中使用Jersey REST客户端。许多教程都提到了一个pom.xml文件,我没有或者知道它是什么。
谢谢你, 奥马
编辑: 这是文件上传:
package com.omar.rest.apimethods;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.sun.jersey.core.header.FormDataContentDisposition;
import com.sun.jersey.multipart.FormDataParam;
@Path("/files")
public class FileUpload {
private String uploadLocationFolder = "/Users/Omar/Pictures/";
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition contentDispositionHeader) {
String filePath = "/Users/Omar/Pictures/" + contentDispositionHeader.getFileName();
// save the file to the server
saveFile(fileInputStream, filePath);
String output = "File saved to server location : " + filePath;
return Response.status(200).entity(output).build();
}
// save uploaded file to a defined location on the server
private void saveFile(InputStream uploadedInputStream,
String serverLocation) {
try {
OutputStream outpuStream = new FileOutputStream(new File(serverLocation));
int read = 0;
byte[] bytes = new byte[1024];
outpuStream = new FileOutputStream(new File(serverLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
outpuStream.write(bytes, 0, read);
}
outpuStream.flush();
outpuStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
表格的模式(我为测试创建的模式): image_id:int auto-incrementing PK,picture:BLOB。 我可以把它作为一个文件链接,只是在我的网站上加载图像,但我甚至无法做到这一点。
答案 0 :(得分:0)
我建议将您的图像存储在某种廉价,经过良好许可的平面存储(如网络存储)中,然后在数据库中存储该存储位置的路径。如果您将图像存储为blob,数据库将会执行与此类似的操作,但我相信将使数据库管理存储和检索这些图像会产生一些开销。这些图像将占用大量数据库的磁盘空间,如果要为图像添加更多空间,向平面存储添加空间应该比向数据库添加空间更容易。