
javascript实现
代码如下:
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type"
content="text/html
charset=utf-8"
/>
<title>jquery文件上传</title>
<script
type="text/javascript"
src="jquery-1.7.2.js"></script>
<script
type="text/javascript">
var
addMore
=
function()
{
var
div
=
document.getElementById("div2")
var
br
=
document.createElement("br")
var
input
=
document.createElement("input")
var
button
=
document.createElement("input")
input.setAttribute("type",
"file")
button.setAttribute("type",
"button")
button.setAttribute("value",
"Remove")
button.onclick
=
function()
{
div.removeChild(br)
div.removeChild(input)
div.removeChild(button)
}
div.appendChild(br)
div.appendChild(input)
div.appendChild(button)
}
//节点的移动
//$(function(){
//})
</script>
</head>
<body>
<div
id="div1">
<input
type="file"
id="upload"/>
<input
type="button"
id="btn"
value="more"
onclick="addMore()"/>
</div>
<div
id="div2"></div>
</body>
</html>
jquery实现
代码如下:
<!DOCTYPE
html
PUBLIC
"-//W3C//DTD
XHTML
1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type"
content="text/html
charset=utf-8"
/>
<title>jquery文件上传</title>
<title>jquery1</title>
<script
type="text/javascript"
src="jquery-1.7.2.js"></script>
<script
type="text/javascript">
/**
var
addMore
=
function()
{
var
div
=
document.getElementById("div2")
var
br
=
document.createElement("br")
var
input
=
document.createElement("input")
var
button
=
document.createElement("input")
input.setAttribute("type",
"file")
button.setAttribute("type",
"button")
button.setAttribute("value",
"Remove")
button.onclick
=
function()
{
div.removeChild(br)
div.removeChild(input)
div.removeChild(button)
}
div.appendChild(br)
div.appendChild(input)
div.appendChild(button)
}**/
//jquery实现文件上传的按钮添加和删除
$(function(){
$("input[type=button]").click(function(){
var
br
=
$("<br>")
var
input
=
$("<input
type='file'/>")
var
button
=
$("<input
type='button'
value='Remove'/>")
$("#div1").append(br).append(input).append(button)
button.click(function()
{
br.remove()
input.remove()
button.remove()
})
})
})
</script>
</head>
<body>
<div
id="div1">
<input
type="file"
id="upload"/>
<input
type="button"
id="btn"
value="more"
onclick="addMore()"/>
</div>
<div
id="div2"></div>
</body>
</html>
/* jQuery实现文件上传,参考例子如下:package com.kinth.hddpt.file.action
import java.io.File
import java.io.FileNotFoundException
import java.io.FileOutputStream
import java.io.IOException
import java.io.InputStream
import java.io.OutputStream
import java.util.ArrayList
import java.util.Calendar
import java.util.Enumeration
import java.util.Hashtable
import java.util.List
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import net.sf.json.JSONArray
import org.apache.commons.logging.Log
import org.apache.commons.logging.LogFactory
import org.apache.struts.action.ActionForm
import org.apache.struts.action.ActionForward
import org.apache.struts.action.ActionMapping
import org.apache.struts.upload.FormFile
import org.hibernate.criterion.MatchMode
import org.hibernate.criterion.Order
import org.hibernate.criterion.Restrictions
import com.gdcn.bpaf.common.base.search.MyCriteria
import com.gdcn.bpaf.common.base.search.MyCriteriaFactory
import com.gdcn.bpaf.common.base.service.BaseService
import com.gdcn.bpaf.common.helper.PagerList
import com.gdcn.bpaf.common.helper.WebHelper
import com.gdcn.bpaf.common.taglib.SplitPage
import com.gdcn.bpaf.security.model.LogonVO
import com.gdcn.components.appauth.common.helper.DictionaryHelper
import com.kinth.common.base.action.BaseAction
import com.kinth.hddpt.file.action.form.FileCatalogForm
import com.kinth.hddpt.file.model.FileCatalog
import com.kinth.hddpt.file.service.FileCatalogService
import com.kinth.hddpt.file.util.MyZTreeNode
/**
* <p>
* description: “文件上传的Struts层请求处理类”
* </p>
* @date : 2013-1-14
*/
public class FileCatalogAction extends BaseAction<FileCatalog> {
@SuppressWarnings("unused")
private static Log log = LogFactory.getLog(FileCatalogAction.class) // 日志记录
private FileCatalogService fileCatalogService
// 删除记录的同时删除相应文件
public ActionForward fileDelete(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String[] id = request.getParameterValues("resourceId")
if (id != null && id[0].contains(",")) {
id = id[0].split(",")
}
String[] fileUrls = new String[id.length]
for (int j = 0 j < id.length j++) {
fileUrls[j] = fileCatalogService.findObject(id[j]).getFileUrl()
if (!isEmpty(fileUrls[j])) {
// 如果该文件夹不存在则创建一个uptext文件夹
File fileup = new File(fileUrls[j])
if (fileup.exists() || fileup != null) {
fileup.delete()
}
}
fileCatalogService.deleteObject(id[j])
}
setAllActionInfos(request)
return list(mapping, form, request, response)
}
@Override
public ActionForward save(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String id = request.getParameter("resourceId")
Boolean fileFlag = Boolean.valueOf(request.getParameter("fileFlag"))
if(fileFlag != null && fileFlag == true){
return super.save(mapping, form, request, response)
}else{
String fileUrl = this.fileUpload(form, request, id, fileFlag)
response.setContentType("text/html")
response.setCharacterEncoding("GBK")
response.setHeader("Charset", "GBK")
response.setHeader("Cache-Control", "no-cache")
response.getWriter().write(fileUrl)
response.getWriter().flush()
}
return null
}
@SuppressWarnings("unchecked")
public String fileUpload(ActionForm form,HttpServletRequest request,String id,Boolean fileFlag) throws FileNotFoundException, IOException{
request.setCharacterEncoding("GBK")
String basePath = getServlet().getServletConfig().getServletContext().getRealPath("")+"/"
String filePath = "uploads/" // 获取项目根路径
/*注释部分对应jquery upload uploadify插件的后台代码,只是还存在编码问题,默认为utf-8
String savePath = getServlet().getServletConfig().getServletContext().getRealPath("") // 获取项目根路径
savePath = savePath + "\\uploads\\"
//读取上传来的文件信息
Hashtable<String, FormFile> fileHashtable = form.getMultipartRequestHandler().getFileElements()
Enumeration<String> enumeration = fileHashtable.keys()
enumeration.hasMoreElements()
String key = (String) enumeration.nextElement()
FormFile formFile = (FormFile)fileHashtable.get(key)
String filename = formFile.getFileName().trim() //文件名
filename = new EncodeChange().changeCode(filename)
String filetype = filename.substring(filename.lastIndexOf(".") + 1)//文件类型
savePath = savePath+filetype+"\\"
System.out.println("path:"+savePath)
String realPath = savePath + filename //真实文件路径
//如果该文件夹不存在则创建一个文件夹
File fileup = new File(savePath)
if(!fileup.exists()||fileup==null){
fileup.mkdirs()
}
if (!filename.equals("")) {
// 在这里上传文件
InputStream is = formFile.getInputStream()
OutputStream os = new FileOutputStream(realPath)
int bytesRead = 0
byte[] buffer = new byte[8192]
while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead)
}
os.close()
is.close()
//如果是修改 *** 作,则删除原来的文件
String id = request.getParameter("resourceId")
if (!isEmpty(id)) {
FileCatalog fileCatalog = fileCatalogService.findObject(id)
String fileUrl = fileCatalog.getFileUrl()
if (!isEmpty(fileUrl)) {
File filedel = new File(fileUrl)
if(filedel.exists()||filedel!=null){
filedel.delete()
}
}
request.setAttribute("entity", fileCatalog)
}
response.getWriter().print(realPath)// 向页面端返回结果信息
}*/
// 读取上传来的文件信息
Hashtable<String, FormFile> fileHashtable = form.getMultipartRequestHandler().getFileElements()
Enumeration<String> enumeration = fileHashtable.keys()
enumeration.hasMoreElements()
String key = (String) enumeration.nextElement()
FormFile formFile = (FormFile) fileHashtable.get(key)
String filename = formFile.getFileName().trim() // 文件名
String filetype = filename.substring(filename.lastIndexOf(".") + 1)// 文件类型
Integer fileSize = formFile.getFileSize()
filePath += Calendar.getInstance().get(Calendar.YEAR)+"/"+filetype+"/"
String realPath = basePath+filePath+filename // 真实文件路径
if (!filename.equals("")) {
// 如果是修改 *** 作,则删除原来的文件
if (!isEmpty(id)) {
FileCatalog fileCatalog = fileCatalogService.findObject(id)
String fileUrl = fileCatalog.getFileUrl()
if (!isEmpty(fileUrl)) {
fileUrl = basePath + fileUrl
File filedel = new File(fileUrl)
if (filedel.exists() || filedel != null) {
filedel.delete()
}
}
request.setAttribute("entity", fileCatalog)
}
// 如果该文件夹不存在则创建一个文件夹
File fileup = new File(basePath+filePath)
if (!fileup.exists() || fileup == null) {
fileup.mkdirs()
}
// 在这里上传文件
InputStream is = formFile.getInputStream()
OutputStream os = new FileOutputStream(realPath)
int bytesRead = 0
byte[] buffer = new byte[8192]
while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead)
}
os.close()
is.close()
}
filePath += filename
String result = "{\"fileName\":\""+filename+"\",\"fileType\":\""+filetype+"\",\"fileSize\":"+fileSize+",\"fileUrl\":\""+filePath+"\"}"
return result
}
public FileCatalogService getFileCatalogService() {
return fileCatalogService
}
public void setFileCatalogService(FileCatalogService fileCatalogService) {
this.fileCatalogService = fileCatalogService
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)