public String fileUploadForDwr(ArrayList<FileTransfer>fileTransfer) {
String tmp = "error"
String fileName = ""// 文件名
String newFileName = ""// 新文件名
InputStream streamIn = null
OutputStream streamOut = null
long size = 1024 * 1024 * 5
if(fileTransfer.size() >size){
return "文件不得大于5M"
}
WebContext webContext = WebContextFactory.get()
String saveurl = webContext.getHttpServletRequest().getSession()
.getServletContext().getRealPath("/upload")
for (FileTransfer obj : fileTransfer) {
if (obj.getFilename() != null &&!obj.getFilename().equals("")) {
fileName = obj.getFilename()
if (fileName.lastIndexOf("\\") >-1) {
fileName = fileName
.substring(fileName.lastIndexOf("\\") + 1)
}
System.out.println(fileName)
newFileName = CTools.createID()
+ fileName.substring(fileName.indexOf("."))
try {
streamIn = obj.getInputStream()
streamOut = new FileOutputStream(new File(saveurl,
newFileName))
int bytesRead = 0
byte[] buffer = new byte[81920]
while ((bytesRead = streamIn.read(buffer, 0, 81920)) != -1) {
streamOut.write(buffer, 0, bytesRead)
}
streamOut.close()
streamIn.close()
tmp="success"
} catch (FileNotFoundException ex) {
} catch (IOException e) {
// TODO: handle exception
} finally {
streamIn = null
streamOut = null
}
}
}
return tmp
}
2、页面上添加脚本var file=dwr.util.getValue("attach") 其中attach为file空间的名称
function uploadFile(){
var file=dwr.util.getValue("attach")
var str="123"
var fileArr = new Array()//注意这里是用的集合,无论一个附件还是多个附件都可以了
fileArr[0] = file
dwrFileUtil.fileUploadForDwr(fileArr,{callback:function (data){back(str,data)}})
}
function back(tmp,data){
alert(3)
alert(tmp+""+data)
}
这样肯定路径就不对了啊现在的js文件在页面里的导入路径实际上成了
项目路径/user/dwr/interface/check.js
当然找不到了
路径最好写成这样
src="<%=request.getContextPath()%>/dwr/interface/check.js"
当然写上表达式不是很好,只是为了给你说清楚
一般项目里都会定义全局变量放在这里使用
如果你的项目在部署后不会发生路径变化
这里干脆就可以写成
src="/项目路径/dwr/interface/check.js"