js中用链接实现打开本地文件对话框

2025-02-24 13:54:38
推荐回答(4个)
回答1:

JS打开选择本地文件的对话框:

方法一:

在定义的form中添加以下javascript代码:

{
              anchor : '95%',
              xtype: 'fileuploadfield',
              id: 'form-file',
              emptyText: '请选择',
              fieldLabel: '上传附件',
              name: 'meetingAffix',
              buttonText: 'Browse'
    }

单击Browse按钮后可以打开对话框,选中文件后,所选文件路径会出现在上传附件后面的文本框中。

方法二:

在定义的form中添加以下javascript代码:

{
      columnWidth :1,
      layout :'form',
      bodyStyle :'padding:10px',
      defaultType :'textfield',
      labelWidth :120,
      width :1000,
      buttonAlign :'center',
      items : [ {
       fieldLabel :'请选择要上传的文件',
       name :'fileName',
       id :'fileId',
       anchor :'95%',
      allowBlank :false,
       inputType :'file'
      } ]
}

方法三:

给按钮定义以下javascript函数:

var inputObj=document.createElement('input')
         inputObj.setAttribute('id','_ef');
         inputObj.setAttribute('type','file');
         inputObj.setAttribute("style",'visibility:hidden');
         document.body.appendChild(inputObj);
         inputObj.click();
         inputObj.value ;

单击已经添加函数的按钮会弹出选择本地文件的对话框。

回答2:

/* 用如下代码把该函数应用到一个HTML文件中:

或把下面代码直接COPY到标签中;

用一般的触发函数均可在HTML文件中使用该函数
例如:
注意:请定义NAME为savePath的输入框接收或显示返回的值,例如:

特别注意的是,由于安全方面的问题,你还需要如下设置才能使本JS代码正确运行,
否者会出现"没有权限 "的问题.

1、设置可信任站点(例如本地的可以为:http://localhost )
2、其次:可信任站点安全级别自定义设置中:设置下面的选项
"对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用 "
*/

function BrowseFolder(){
try{
var Message = "请选择文件夹"; //选择框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
document.all.savePath.value=Folder;
return Folder;
}
}catch(e){
alert(e.message);
}
}

回答3:

你可以这样实现:

回答4:

js做不了,涉及js对本地资源访问的限制。你可以试试了解通过js如何call windows api