1、在jsp中,通過file文本得到圖片信息,怎麼將圖片上傳至伺服器,你這個是怎麼實現 的,可以分享一下嗎,謝謝
這是jsp頁面
<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("basePath", basePath);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>北京締凡思信息技術有限公司</title>
<link type="text/css" rel="stylesheet" href="${basePath}backStage/css/back.css"/>
<script type="text/javascript">
function messages(){
var title=document.messForm.title.value;
var messageContext=document.messForm.messageContext.value;
var date=document.messForm.date.value;
var file=document.messForm.file.value;
if(title==""){
alert("新聞主題不能為空");
document.messForm.title.focus();
return false;
}
if(messageContext==""){
alert("新聞內容不能為空");
document.messForm.messageContext.focus();
return false;
}
if(date==""){
alert("新聞發布時間不能為空");
document.messForm.date.focus();
return false;
}
if(file==""){
alert("新聞圖片不能為空");
document.messForm.file.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<div id="rigth" style="margin-left: 250px;margin-top: 20px;">
<form action="${basePath}addMess" name="messForm" method="post" enctype="multipart/form-data" >
<table cellpadding="0" cellspacing="0" width="70%">
<tr style="height: 32px; font-size: 16px;">
<th colspan="2">發布最新新聞</th>
</tr>
<tr>
<th width="150">新聞主題</th>
<td width="320">
<textarea name="title" class="textarea" rows="3" cols="40"></textarea>
</td>
</tr>
<tr>
<th>新聞圖片</th>
<td><input type="file" name="file" style="margin-left: 25px; width:260px; border: 1px;"/></td>
</tr>
<tr><td colspan="2">
<input class="res" type="reset" value="取消" onclick="window.location.href='${basePath}showMessage';"/>
<input class="sub" disabled="disabled" type="submit" value="發布" onclick="return messages();"/>
</td> </tr> </table>
</form>
</div>
</body>
</html>
然後在servlet中處理:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");
request.setCharacterEncoding("gbk");
SmartUpload su =new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
String realPath = this.getServletContext().getRealPath("");
String path=realPath+"/foreStage/images";//你把圖片上傳至伺服器中的項目的位置,foreStage是我在webContent下的文件夾
su.setAllowedFilesList("bmp,jpg,jpeg,png,gif");
try {
su.upload();
su.save(path);//將文件上傳至伺服器指定的位置
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String filename=su.getFiles().getFile(0).getFileName();//獲取上傳圖片的名字
String title=su.getRequest().getParameter("title");//注意這是接收表單傳過來的參數,如果用request.getParameter("title"),值為空,因為jsp把其他的文本給屏蔽掉了 }
我是這樣做的,也成功了
2、java 求jsp上傳圖片到伺服器代碼
提交頁面表單
<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/html; charset=UTF-8"
import="java.io.*"
pageEncoding="UTF-8"%>
<%
/**
協議頭四行內容
45 -----------------------------7de231211204c4
80 Content-Disposition: form-data; name="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());
%>
3、jsp上傳了圖片到伺服器後,怎樣使用?
需要用絕對路徑,路徑要用項目的工程路徑加上圖片在項目工程目錄下的路徑
要保證瀏覽器能直接輸入這個路徑地址訪問到圖片
4、通過JSP怎樣上傳圖片到伺服器
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 = 0; i < extArray.length; i++) {
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>
註: 這個是很久以前在網上看到的,就整理了下來,但是這么久都沒用過,所以也沒調試過,你自己試一試研究研究, 再來網上很多博客里,他們寫的很詳細的,可以去看看
5、(jsp,java)如何將圖片保存在伺服器端
你做的是簡單的圖片上傳?我這是spring的上傳你可以用io流上傳圖片
public String picture(@RequestParam MultipartFile[] imgs,HttpServletRequest request,Picture picture,HttpSession session) throws IOException {
for (MultipartFile myfile:imgs) {
if(myfile.isEmpty()){
request.setAttribute("msg", "文件上傳失敗!");
return "redirect:/pictureloading";
}else {
String path=request.getSession().getServletContext().getRealPath("images/imgs");
FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(path,myfile.getOriginalFilename()));
picture.setP_img("imgs/"+myfile.getOriginalFilename());
}
}
if (picture.getP_title()==null ||picture.getP_pctxt()==null) {
request.setAttribute("msg", "添加失敗!");
return "redirect:/pictureloading";
}
pictureServiceImpl.addPicture(picture);
return "redirect:/pictureloading";
}
6、jsp中圖片上傳到伺服器,是一個怎麼樣的流程?
所謂別的伺服器和自己的伺服器其實是相對的,你把web應用中普通的應用和上傳都在一個伺服器實現那就是你說的自己的伺服器,如果你把上傳功能單獨成一個獨立的系統部署在其他伺服器,對外提供服務的介面,那麼客戶端調用這樣的上傳服務後就是上傳到你所說的別的伺服器啦
7、jsp上傳圖片到tomcat伺服器後,怎麼在頁面顯示
可以把路徑保存到資料庫中,要在前端顯示的話。最好的方法就是在寫一個專門針對顯示圖片的action方法。將數據流寫出去,jsp中img標簽寫對應的顯示圖片的action方法的鏈接
8、請問jsp頁面如何上傳照片到伺服器呢,
這個是我以前用的一個用jsp上傳的,servlet是一樣的,你可以自己修改下。
普通參數也是可以接受的
在jsp頁面中你需要導入jsmart的中文jar包,如果你需要的話可以密我,我郵箱發給你
上傳頁面upload.html
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=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());
}
%>
9、jsp頁面如何訪問上傳到tomcat伺服器的圖片
沒有顯示圖片
就是路徑不對
你先獲取從項目的根目錄
然後再獲取圖片所在路徑
這是我取tomcat服務端圖片文件夾的方法
用的是servlet
this.getservletcontext().getrealpath("uploadfile");
//(
"uploadfile"
是放圖片的文件夾)