0

我正在使用 Jersey API 来使用多部分数据(照片),并且我喜欢将其保存为服务器应用程序目录,而不是任何其他驱动器。我成功保存在 D 盘等任何其他驱动器中,但找不到将其保存在服务器应用程序目录中的方法。

@POST
@Path("uploadphoto")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("text/plain")
public String uploadNotices(@FormDataParam("file") InputStream uploadedInputStream) {
    String uploadedFileLocation = "d:/1.jpg";
    // save it
    try {
        writeToFile(uploadedInputStream, uploadedFileLocation);
    } catch(Exception e) {
        return "no";
    }
    return "yes";
}

// save uploaded file to new location
private void writeToFile(InputStream uploadedInputStream, String uploadedFileLocation) throws Exception {
    OutputStream out = new FileOutputStream(new File(uploadedFileLocation));
    int read = 0;
    byte[] bytes = new byte[1024];

    out = new FileOutputStream(new File(uploadedFileLocation));
    while ((read = uploadedInputStream.read(bytes)) != -1) {
        out.write(bytes, 0, read);
    }
    out.flush();
    out.close();
}
4

3 回答 3

1

它解决了我的问题

@Context
private ServletContext context;

String filePath = context.getRealPath("images/");   
File file = new File(filePath);
于 2013-07-02T06:57:11.710 回答
0

您的 jersey Web 应用程序在服务器上的 JVM 中运行,例如 Tomcat。应用程序的根文件路径通常是 Tomcat 服务器的文件夹。要获取此文件夹路径,您可以轻松执行以下操作:

String sRootPath = new File("").getAbsolutePath();

您可以使用根文件夹或您创建的任何其他自定义文件夹。试试这个,希望它有效。

于 2013-06-18T07:20:31.047 回答
0

例如,您应该将这些文件保存在System.getProperty("java.io.tmpdir")指定的临时文件中。

于 2013-06-18T08:05:35.730 回答