访问我们的Web应用程序中的外部文件

时间:2013-09-30 07:59:36

标签: java java-ee web struts-1

这个问题可能会多次被问到,但我找不到直接答案。

实际上我正在使用WebSphere来运行我的Java Web应用程序,我想将上传的文件/资源​​保存/存储到服务器目录之外的文件夹,比如说D:/resources/,但我担心的是,我们是否可能这样做?因为这可能是一种安全漏洞。

如果可以,那么如何在Java Web应用程序中执行此操作。

1 个答案:

答案 0 :(得分:0)

以下是在struts 1.x

中上传文件的代码
public class MyModel extends ActionForm {

    private static final long serialVersionUID = 1L;

    private FormFile file = null;

    public void setFile(FormFile file) {
        this.file = file;
    }

    public FormFile getFile() {
        return this.file;
    }

}



public class FileUploadAction extends DispatchAction{

MyModel m = (MyModel) form;
FormFile myFile = m.getFile();

String contentType = myFile.getContentType();
String fileName = myFile.getFileName();

int fileSize = myFile.getFileSize();
byte[] fileData = myFile.getFileData();

String recieveMaterialFileName = myFile.getFileName();
File newFile = new File("D:/resources/images", recieveMaterialFileName);

if(!newFile.exists()){
      FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(newFile);
            fos.write(myFile.getFileData());
            fos.flush();
        } catch (FileNotFoundException e) {
            System.err.println("Error " + e);
        } catch (IOException e) {
            System.err.println("Error " + e);
        }finally{
            fos.close();
        }
    }
}