请问如何用js实现打开选择文件和保存文件至自选路径的对话框?

JavaScript027

请问如何用js实现打开选择文件和保存文件至自选路径的对话框?,第1张

下面是一个VB脚本的,需要加入可信站点才能弹出对话框,打开要保存的文件夹

<script language="vbscript">

Function Foder()

Const MY_COMPUTER = &H11&

Const WINDOW_HANDLE = 0

Const OPTIONS = 0

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.Namespace(MY_COMPUTER)

Set objFolderItem = objFolder.Self

strPath = objFolderItem.Path

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.BrowseForFolder _

(WINDOW_HANDLE, "请选择文件夹:", OPTIONS, strPath)

If objFolder Is Nothing Then

exit Function

End If

Set objFolderItem = objFolder.Self

objPath = objFolderItem.Path

document.frmList.FODER_PATH.value = objPath

End Function

</script>

<input type = "button" name = "path" size = "100" onclick="Foder()" value="选择文件夹" />

客户导入选择文件就用file就可以

<input type="file" name="DATA_RESTORE_PATH" maxlength="20" style="WIDTH: 100px" >

出于安全原因, js不能访问客户端资源. 所以js写不了客户端文件. 使用file类i-n-p-u-t标签可以在浏览器上实现浏览客户端文件系统, 但是只能获取文件名, 路径对于js是不可见的. 所以你的方法是实现不了的.

实现导出文件的通常做法是在后台生成好文件后, 将url重定向到已生成的文件或使用异步方法返回文件url在前台使用i-f-r-a-m-e打开, 这样就能直接下载. 之后根据客户端的设置, 是下载还是直接调用关联程序打开文档. 以xls文件为例, 客户端已安装office, 大多数浏览器是会直接代开该文件的, 可以在excel中另存到任意路径. 不过这些就不是js所能控制的了.

后台代码实现方面, 直接在网站目录下生成文件当然方便, 但是存在安全方面的问题, 因为静态url无法控制访问权限. 最好是将文件生成在网站文件系统意外的独立区域存储, 将下载事务包装成动态页面, 读取文件使用b-i-n-a-r-y方式写入r-e-s-p-o-n-s-e(注意根据文件类型正确写入c-o-n-t-e-n-t Type, 这样浏览器才能正确识别为文件下载). 这样做的好处显而易见, 不管是安全方面还是其他逻辑都可自由扩展.

尼玛, 好多禁用的词汇, 回答js相关的问题各种河蟹