Rooock 2009-12-18 19:23
浏览 291
已采纳

Ext文件上传的三个问题

我想实现一个文件上传的功能:

(1) 选择一个文件A. 点击选择按钮. 将文件A的路径显示面板上.

(2) 文件名的后面带有删除的图标. 表示可删除[color=blue]准备上传[/color]的文件.

(3) 可选择多个文件.如选择一个文件B. 重复步骤(1)...

具体效果就像JE问答的上传附件那样, 可上传多个. 可删除.

而我的思路如下:

(1) 定义一个文件选择的formpanel

[code="js"]
var fileSelectFormPanel = new Ext.form.FormPanel({
items:[{
xtype:'textfield'
,fieldLabel:'文件路径'
,inputType:'file'// 出现选择文件的按钮
,allowBlank:false
,blankText:'请选择上传的文件'
}]
});
[/code]

(2) 定义一个显示准备上传文件的面板

这个很简单, 就是在(1)中选择了什么文件, 就在面板把文件的目录和文件名显示出来.
后面再带上一个删除的图标.

(3) 定义一个formpanel. 上传所有的文件.

在这个form中, 才是真正的上传的文件.
因为formpanel不能嵌套formpanel.
所以我打算用一些隐藏字段来提交.
隐藏的字段的值得就是已选择的文件的全路径

[code="js"]
var uploadFiles = new Ext.form.FormPanel({
url:'xxxxAction!myMethod.action'
,fileUpload:true // 必须指定
,buttons:[
{xtype:'button', text:'上传', handler:function(){
// files是文件全路径
uploadFiles.setValues(files);
}}
]
});
[/code]

这么做,想法都可能是有问题, 因为我发现有几个地方实现不了.

color=red 得不到文件的全路径.[/color]
无论是fileSelectFormPanel.getValue()或是fileSelectFormPanel.getRawValue()都只是文件的名而已.

color=red 实现不了多文件一起上传.[/color]
表单uploadFiles实质上还是只能上穿一个文件.

color=red 如果给一个全路径的字符串. 如c:/123.txt, 做为隐藏字段.这样后台也能接受到吗??[/color]

  • 写回答

1条回答 默认 最新

  • zhoujuan520 2009-12-19 22:25
    关注

    quote 得不到文件的全路径.
    无论是fileSelectFormPanel.getValue()或是fileSelectFormPanel.getRawValue()都只是文件的名而已.

    (2) 实现不了多文件一起上传.
    表单uploadFiles实质上还是只能上穿一个文件.

    (3) 如果给一个全路径的字符串. 如c:/123.txt, 做为隐藏字段.这样后台也能接受到吗?? [/quote]

    1.除了IE浏览器外,都只能获得文件名.
    2.可以多文件上传,你就普通html上传的那种表单都可以多文件上传,javaeye那种是通过ajax异步提交了数据到后了.
    [url]http://max-bazhenov.com/dev/upload-dialog-2.0/index.php[/url]

    3.只要控件没有被disabled,后台都可以接受.

    另外上传有很多解决办法,推荐使用swfuplaod
    [url]http://yourgame.iteye.com/blog/549328[/url]
    [img]http://dl.iteye.com/upload/attachment/180890/513be33d-6ea0-383b-a977-640e421d92b9.png[/img]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮