通过JSP怎样上传图片到服务器

通过JSP怎样上传图片到服务器,第1张

1.限制文件上传类型只能是图片

function checkFileType(name,file){

var extArray = new Array(".doc",".docx")

var allowSubmit = false

if (!file){

return

}

while (file.indexOf("\\") != -1){

file = file.slice(file.indexOf("\\") + 1)

}

var ext = file.slice(file.indexOf(".")).toLowerCase()

for (var i = 0i <extArray.lengthi++) {

if (extArray[i] == ext){

allowSubmit = true

break

}

}

if(!allowSubmit){

alert("只能上传以下格式的文件:"+ (extArray.join("")) + "\n请重新选择再上传.")

document.getElementById(name).value = ""

}

}

其中:extArray是要求文件类型。可自行定义。

2.引入jQuery外部文件

jquery-2.1.4.min.js

3.编写js代码

$(function () {

$('#txtfilePath1').uploadReview({

width: 350,

height: 350,

target: '#uploadReview1_content'

})

})

其中:txtfilePath1是input:file。width,height是预览图片的宽度和高度。target是显示预览图片的位置。

4.编写jsp页面代码

<body>

<input type="text" class="yourClassName" name="filePath1" id="filePath1"/>

<input type="file" id="txtfilePath1" name="txtfilePath1" style="display:none">

<input type="button" onclick="txtfilePath1.click()" id="fileup1" name="fileup1" class="searchThing"value="上传">

</body>

注: 这个是很久以前在网上看到的,就整理了下来,但是这么久都没用过,所以也没调试过,你自己试一试研究研究, 再来网上很多博客里,他们写的很详细的,可以去看看

提交页面表单

<form action="up.jsp" enctype="multipart/form-data" method="post">

<input type="file" name="file">

<input type="submit" value="确定">

</form>

上传页面up.jsp

<%@page import="java.io.FileWriter"%>

<%@ page language="java" contentType="text/htmlcharset=UTF-8"

import="java.io.*"

pageEncoding="UTF-8"%>

<%

/**

协议头四行内容

45 -----------------------------7de231211204c4

80 Content-Disposition: form-dataname="file"filename="xx.txt"

26 Content-Type: text/plain

2

标记文件结尾

-----------------------------7de231211204c4--

**/

ServletInputStream sin = request.getInputStream()

byte[] buffer = new byte[1024 * 8]

int length = 0, row = 0

String mark = ""

String filename = ""

while ((length = sin.readLine(buffer, 0, buffer.length)) >0) {

out.println(length + "" + new String(buffer, 0, length, "UTF-8") + "<br>")

String s = new String(buffer, 0, length, "UTF-8")

if (row == 0)

mark = s.trim()

else if (s.indexOf("filename=") >0) {

int end = s.lastIndexOf("\"")

int start = s.substring(0, end).lastIndexOf("\"")

filename = s.substring(start + 1, end)

} else if ("".equals(s.trim()))

break

row ++

}

out.println("filename:" + filename + "<br>")

filename = request.getRealPath("/") + "../" + filename

FileOutputStream fout = new FileOutputStream(filename)

while ((length = sin.readLine(buffer, 0, buffer.length)) >0) {

String s = new String(buffer, 0, length)

if (s.startsWith(mark))

break

fout.write(buffer, 0, length)

}

fout.flush()

fout.close()

File f = new File(filename)

out.println(f.exists())

out.println(f.getAbsolutePath())

%>

这个是我以前用的一个用jsp上传的,servlet是一样的,你可以自己修改下。

普通参数也是可以接受的

在jsp页面中你需要导入jsmart的中文jar包,如果你需要的话可以密我,我邮箱发给你

上传页面upload.html

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8"/>

</head>

<body>

<form action="uploadfile.jsp" method="post" enctype="multipart/form-data">

<table width="380" border="0" align="center" cellpadding="0" cellspacing="0" style="font-size:12px">

<tr>

<td height="40" align="right">节目名称:</td>

<td><input type="text" style="WIDTH: 210px" id="mcdb_content" name="mcdb_content" /></td>

</tr>

<td height="40" align="right">节目链接地址:</td>

<td><input type="text" style="WIDTH: 210px" id="linkUrl" name="linkUrl" /></td>

</tr>

<tr>

<td height="40" align="right" valign="middle">

上传焦点图片:</td>

<td><input type="file" name="upfile" id="file"></td>

</tr>

<tr>

<td colspan="2" align="center"><input type="button" value="提交"></td>

</tr>

</table>

</form>

</body>

</html>

处理上传文件的页面uploadfile.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@ page import="com.jspsmart.upload.*" %>

<%

SmartUpload mySmartUpload =new SmartUpload()

//上传文件的限制大小

long file_size_max=4000000

String fileName2="",ext="",testvar=""

//应保证在根目录中有此目录的存在(也就是说需要自己建立相应的文件夹)

String url="/upload/"

//初始化

mySmartUpload.initialize(pageContext)

//只允许上载此类文件

try {

mySmartUpload.setAllowedFilesList("bmp,jpg,tiff,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw")//此处的文件格式可以根据需要自己修改

//上载文件

mySmartUpload.upload()

} catch (Exception e){

//上传类型出现异常

%>

<SCRIPT language=javascript>

alert("只允许上传图片")

window.location='upload.html'

</script>

<%

}

try{

//得到上传的文件

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0)

//如果文件获得为空

if (myFile.isMissing()){%>

<SCRIPT language=javascript>

alert("请先选择要上传的文件")

window.location='upload.html'

</script>

<%}

//得到了上传的文件

else{

//String myFileName=myFile.getFileName()//取得上载的文件的文件名

ext= myFile.getFileExt()//取得后缀名

int file_size=myFile.getSize()//取得文件的大小

String saveurl=""

//如果文件没有超过限制上传的大小

if(file_size<file_size_max){

//更改文件名,取得当前上传时间的毫秒数值

Calendar calendar = Calendar.getInstance()

String filename = String.valueOf(calendar.getTimeInMillis())

saveurl=application.getRealPath("/")+url

String filenamea=""

//保存路径

saveurl+=filename+"."+ext

filenamea+=filename+"."+ext

//接受普通参数

Request req = mySmartUpload.getRequest()

String bt=(String)req.getParameter("mcdb_content")

String linkurl = (String)req.getParameter("linkUrl")

myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL)

out.print(filenamea)

}

}

}catch (Exception e){

out.print(e.toString())

}

%>


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/327933.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存