0

i mode development in eclipse. the fileupload works just fine. but i will make directory to /var/wms/year/month/file.jpg on linux. this my source code from client: add component to form

fileUpload = new SingleUploader(FileInputType.LABEL);
    fileUpload.setFileInputPrefix("PJ");
    fileUpload.addOnFinishUploadHandler(onFinishUploaderHandler);
    layoutContainerItemRight.add(fileUpload, formData);

method is addOnFinishUploadHandler

private IUploader.OnFinishUploaderHandler onFinishUploaderHandler = new IUploader.OnFinishUploaderHandler() {
    public void onFinish(IUploader uploader) {
        if (uploader.getStatus() == gwtupload.client.IUploadStatus.Status.SUBMITING) {
            String month = VisionProperties.getBulan();
            String year = DateTimeFormat.getFormat( "d-M-yyyy" ).format( new Date() ).split( "-")[2];
            String strDirectoy = "/var/wms/" + year + "/" + month + "/";
            File file = new File(strDirectoy);
            if (!file.exists()) {
                file.mkdirs();
            }
        }

        if (uploader.getStatus() == gwtupload.client.IUploadStatus.Status.SUCCESS) {
        String msg  = uploader.getServerInfo().message;
        fileName    = msg.toString();
            if(selectWindow != 2){
                img.setUrl("servlet.gupld?show=&fieldname=" + fileName);
                itemPanel.render(img.getElement());
            }else{
                tb.setVisible(true);
                tb.setText("Download File "+uploader.getFileName());
            }
        }
    }
};

how to make directory file when upload file process?

4

2 回答 2

1

您正在尝试在 GWT jre emulationjava.io.File中的包集不支持的客户端中使用。

如果您想在客户端执行此操作,则必须使用旧浏览器不支持且未在 gwt-core 中实现的 javascript File Api 。使用 elemental,您只能将 Api 与 Chrome 一起使用,但我并不肯定。所以最好还是通过jsni来封装,gwtupload中已经计划好了,但是目前还没有具体的时间框架。请注意,使用 js File Api,您无法访问真实的文件系统,而是浏览器中的虚拟文件系统。要将创建的文件保存在本地文件系统中,您必须使用 iframe 下载它,以便它询问用户将其保存在哪里。

否则,如果您想在服务器端完成这项工作,executeAction如果您正在扩展UploadAction.

于 2013-04-24T07:08:26.973 回答
0

您不能在客户端执行此操作。您可以通过以下方式在服务器端执行此操作

  1. 在通过另一个 rpc/http 调用将文件上传到服务器之前。
  2. 在服务器端执行文件上传 servlet 时将文件上传到服务器之后。

即使在现代浏览器中,HTML5 FILE API 也仅限于只读行为。

参考 - 1. GWT 中的基本文件上传 2.如何从 GWT FileUpload 组件中检索文件?

于 2013-04-24T08:20:36.820 回答