当前位置 : 主页 > 网络推广 > seo >

如何从GWT FileUpload组件中检索文件?

来源:互联网 收集:自由互联 发布时间:2021-06-16
我想使用GWT fileUploader组件上传文件, 我试过这样的, FileUpload fileUpload = new FileUpload();filepload.addChangeHandler(new new ChangeHandler() { @Override public void onChange(ChangeEvent event) { // here i submit the form,
我想使用GWT fileUploader组件上传文件,

我试过这样的,

FileUpload fileUpload = new FileUpload();
filepload.addChangeHandler(new new ChangeHandler() {
    @Override
    public void onChange(ChangeEvent event) {
         // here i submit the form, and a response is created to client side to display success message.
    } });

>好的,到目前为止我可以上传一个文件,从servlet我可以给出成功的消息.
>我在表单面板的onSubmitCompleate事件中处理它,
>谢谢分配.
>让我再问一件事,无论如何我可以显示上传的文件,然后将其保存到数据库中?
>即,实际上我需要提供一个复合组件来上传文件和文本区域,以告知有关该文件的详细信息.
>当用户选择要上传的文件时,我想要显示上传的文件(以便他可以确保上传正确的文件)
>并在提交整个表单时将其保存到db.

我猜你想允许用户使用GWT Fileupload小部件上传文件,然后不希望在服务器端处理它.您希望客户端中的字节数组表示.

文件处理的常用步骤
浏览器 – >文件上传对话框 – >选择文件 – >将带有文件的表单提交给服务器 – >服务器上的进程文件 – >将处理后的文件作为响应发送回客户端(字符串).

如果您想避免上述步骤并在浏览器中处理该文件,则无法在当前的javascript中执行此操作. Flash,Applet,Silverlight或Activex等并行技术可能会有所帮助.将来要采用的正确方法是使用HTML5文件apis.

如果您不希望使用像flash / applet这样的传统技术,那么可以探索FileReader上的HTML5 apis.但是,需要权衡的是检查浏览器是否支持api.

HTML5 FileReader

FileReader包括四个异步读取文件的选项:

FileReader.readAsBinaryString(Blob|File) - The result property will contain the file/blob's data as a binary string.
FileReader.readAsText(Blob|File, opt_encoding) - The result property will contain the file/blob's data as a text string. 
FileReader.readAsDataURL(Blob|File) - The result property will contain the file/blob's data encoded as a data URL.
FileReader.readAsArrayBuffer(Blob|File) - The result property will contain the file/blob's data as an ArrayBuffer object.

这些GWT包装器的示例 –
https://github.com/bradrydzewski/gwt-filesystem

参考 –

> http://www.html5rocks.com/en/tutorials/file/dndfiles/
> HTML5 File API read as text and binary

网友评论