用jquery uploadify 上传文件得到选择的文件路径!

用jquery uploadify 上传文件得到选择的文件路径!,第1张

onSelect

当选中一个文件后触发此事件,默认会创建一个6位的随机编号的元素,并加入到文件队列中,如果返回false则不会执行此动作。

此事件有三个参数:

event: javascript的event对象

queueID: 选中文件的编号

fileObj: 一个包含文件详细信息的对象。

name – 文件名称

size – 文件的大小(字节)

creationDate – 文件的创建时间

modificationDate – 文件的修改时间

type – 文件的扩展名(包括'.')

所以说你想得到客户端的路径这样是不行的!

上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的:

function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select()return document.selection.createRange().text} else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { return obj.files.item(0).getAsDataURL()} return obj.value} return obj.value} } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!?

引用至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了

引用至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案:

一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义

除非像上面所说的文件上传预览,还有那么点用处

我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。

1首先是jsp

<button class="btn button uploadAndNext" id="importWhiteBtn" type="button">

<span class="button">提交导入</span>

</button>

2.然后是js

$(function(){

var uploadCom = null

function uploadIt() {

$("#importWhiteBtn").click(function() {

var uploadId = "#" + $(this).attr("id")

var btn = $(this)

uploadCom = new AjaxUpload( uploadId + "" , {

action : "whitePhoneNumber.do?action=importFile",

onSubmit: function(file, ext) {

if ((ext &&/^(txt)$/.test(ext))) {

alert("请先下载导入模板readme.txt参考,您上传的文档格式不对,请重新选择!")

return false

}

$.blockUI({

message:"正在上传到服务器...."

})

},

onComplete: function(file, response) {

$.unblockUI()

if(response=="success"){

alert( "导入成功")

$('#whitePhoneList').flexReload()

}else{

alert( "导入失败,"+response)

}

}

})

})

$(".uploadAndNext").click()

}

uploadIt()

firstClick = false

})

3.最后是action

public ActionForward importFile(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) throws Exception{

FileItemFactory factory = new DiskFileItemFactory()

ServletFileUpload upload = new ServletFileUpload(factory)

String success = "success"

BufferedReader br=null

InputStream in=null

String operator = UserNameUtil.getUserName(request)

String areaCode = whitePhoneManager.getAreaCodeByOperator(operator)

try {

List<FileItem>list = upload.parseRequest(request)

for (int i = 0i <list.size()i++) {

FileItem fileItem = list.get(i)

String name = fileItem.getName().substring(

fileItem.getName().lastIndexOf("\\") + 1)

if(fileItem.getSize() >2097152){//200k

throw new Exception(" 文件大小超过2M")

}

log.debug("upload file name:" + name)

in= fileItem.getInputStream()

br = new BufferedReader(new InputStreamReader(in))

whitePhoneManager.processFile(br,areaCode)

logutil.log_Operation(request, LogUtil.LOG_MODULE_SYSTEMCONFIG,

LogUtil.LOG_EVENT_CREATE, "批量导入短信白名单", "filename: "

+ name, "成功",

LogUtil.SUCCESS)

}

} catch (FileUploadException e) {

log.debug("error", e)

success=e.getMessage()

} catch (Exception e) {

log.debug("error", e)

success=e.getMessage()

}finally{

if(br!=null) try{br.close()}catch(Exception e){log.error("unable to close bufferdreader",e)}

if(in!=null) try{in.close()}catch(Exception e){log.error("unable to close inputstream",e)}

response.setContentType("text/html")

response.setCharacterEncoding("UTF-8")

response.getWriter().write( success )

return null

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8128557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存