html中file上传后如何保存到一个位置

html-css06

html中file上传后如何保存到一个位置,第1张

html中file上传后保存到一个位置需要预先在服务端建一个保存目录。

举例如下:

1、创建上传form:

<form action="http://www.cs.tut.fi/cgi-bin/run/~jkorpela/echo.cgi"

enctype="multipart/form-data" method="post">

<p>

Type some text (if you like):<br>

<input type="text" name="textline" size="30">

</p>

<p>

Please specify a file, or a set of files:<br>

<input type="file" name="datafile" size="40">

</p>

<div>

<input type="submit" value="Send">

</div>

</form>

2、提交到后台服务端处理:

public void commonImgUpload(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/xml charset=utf-8")

response.setCharacterEncoding("UTF-8")

PrintWriter pw = response.getWriter()

String xml = ""

String imgName = getParam(request, "imgName")

String imgValue = getParam(request, "imgValue")

String type = getParam(request, "type")

String encryptCode = getParam(request, "encryptCode")

log.debug("图片上传,图片名称:" + imgName + ",上传类型:" + type)

if (MD5Checker.check(encryptCode, imgName)) {

try {

String path = this.getClass().getClassLoader().getResource("").getPath()

log.info("当前路径:" + path)

path = path.replace("WEB-INF/classes/", "pictures/" + type + "/")

log.info("替换后路径:" + path)

File temp = new File(path)

if (!temp.isDirectory()) {

log.info("创建目录path: " + path)

temp.mkdirs()

}

path += imgName

log.info("图片全path: " + path)

FileUtil.saveFile(path, (new BASE64Decoder()).decodeBuffer(imgValue), "UTF-8")

xml = "success"

log.info("上传图片:" + path + "成功!")

} catch (Exception e) {

log.info("上传图片失败," + e.getMessage())

xml = "fail"

}

} else {

xml = "<data><resultCode>" + "09" + "</resultCode>" + "<resultMsg>" + "摘要验证错误" + "</resultMsg>" + "</data>"

}

pw.print(xml)

if (null != pw) {

pw.close()

}

}

3、保存路径:

WEB-INF/classes/pictures/111.jpg

Dedecms去掉URL中a目录的方法有两个:

方法一:

如果你是新站我们可以在创建时文章栏目的时,选择网站根目录或者cms根目录,这样就会去掉/a/

1、首选在系统设置那的系统基本参数那,文档HTML默认保存路径,把a去掉。

2、然后在到栏目管理那修改下,文件保存目录,自己命名。

方法二:

如果直接替换目录/a/而,文章中没去了对网站排名不好,会有很多死链接了,我们直接在Dedecms后台中命令中执行下面sql即可,然后重新生成页面。

输入,代码如下:

UPDATE dede_arctype SET typedir=REPLACE(typedir,'a/','')

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()// 获取此文件对话框的保存文件名

拿到保存路径就能够实现文件的保存逻辑操作了。