如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory()difif.setSizeThreshold(32*1024)difif.setRepository(new File(tmpDir)) //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif)
sfu.setSizeMax(MAX_SIZE)
List fileList = sfu.parseRequest(request)
if ( fileList == null || fileList.size() == 0) { throw new Exception("
导入文件不存在,请检
查")} else { File upLoadFile = null Iterator fileIterator = fileList.iterator()
//得到所有上传的文
件 while (fileIterator.hasNext()) { FileItem fileItem = (FileItem)fileIterator.next() //
取得上传文件
名 if (fileItem.getContentType() == null) { } else {
//
此为路
径 String path = fileItem.getName() String t_ext = path.substring(path.lastIndexOf(".") + 1) //
根据系统时间生成上传后保存的文件
名 String prefix = String.valueOf(System.currentTimeMillis()) //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下 String u_name = tmpDir + File.separator + prefix + "." + t_ext //
开始保存文
件 upLoadFile = new File(u_name) fileItem.write(upLoadFile) } } }
js实现文件另存为的我还没见到过。java的确实是可以,java的实现方式也不止一种。下面以Swing的方式来讲解一种:
通过创建一个文件对话框
//parent表示对话框的所有者 Frame//title表示对话框的标题 String
//mode表示对话框的类型,这里指定为保存类型 int( FileDialog.SAVE)
FileDialog saveAsFileDialog = new FileDialog(parent, "对话框标题", FileDialog.SAVE)
然后指定这个文件对话框为文件保存类型。调用
saveAsFileDialog.setVisible(true)的方式来显示对话框。显示对话框以后该对话框就处于阻塞状态等待用户通过UI界面去选择文件保存路径。点击保存以后。
saveAsFileDialog.getDirectory()//文件对话框的保存目录+ saveAsFileDialog.getFile()// 获取此文件对话框的保存文件名
拿到保存路径就能够实现文件的保存逻辑操作了。
下面是一个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" >