我想使用GWT fileUploader组件上传文件, 我试过这样的, FileUpload fileUpload = new FileUpload();filepload.addChangeHandler(new new ChangeHandler() { @Override public void onChange(ChangeEvent event) { // here i submit the form,
我试过这样的,
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.
文件处理的常用步骤
浏览器 – >文件上传对话框 – >选择文件 – >将带有文件的表单提交给服务器 – >服务器上的进程文件 – >将处理后的文件作为响应发送回客户端(字符串).
如果您想避免上述步骤并在浏览器中处理该文件,则无法在当前的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