jsp上傳圖片mysql
到資料庫?
你可以建一個文件夾來保存上傳的圖片,
然後將圖片的文件名保存到資料庫中。
要用的時候在根據圖片的文件名到該文件夾下面去讀取顯示出來
『貳』 使用jsp技術如何向mysql 中儲存大圖片
假設你資料庫 的longblob的欄位是「hahahaha",那麼不管你直接用jsp還是用其他的框架處理圖片的上傳,最終肯定能夠得到 有關文件的輸入流,我這里假設你的流是來源於一個文件,
FileInputStream fis = new FileInputStream(myFile);
myResultSet.updateBlob("hahahaha", fis);
這樣,你的文件就寫入到資料庫中了。
『叄』 JSP實現圖片上傳並保存到資料庫
servlet裡面有一個request.getPart()方法,通過這個文件可以獲得圖片,前提是你的servlet版本必須是3.0以上+tomcat7,具體參考以下
@WebServlet("/articleManage")
@MultipartConfig(maxFileSize = 1024 * 1024 * 10)
// 最大10MB
public class ArticleManage extends HttpServlet {
private static final long serialVersionUID = 1L;
public ArticleManage() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
if (method != null) {
if (method.equals("add")) {
addArticle(request, response);
}
}
private void addArticle(HttpServletRequest request,
HttpServletResponse response) {
ArticleService service = new ArticleServiceImpl();
ArticleTypeService typeService=new ArticleTypeServiceImpl();
String content = null;
String email = null;
String tag = null;
String type=null;
try {
email = request.getParameter("email");
content = request.getParameter("content");
tag = request.getParameter("tag");
type=request.getParameter("type");
Part img = request.getPart("img");
String imgName = null;
if (img != null) {
// 設置文件路徑,寫到硬碟
String head = img.getHeader("content-disposition");
int index = head.lastIndexOf("=") + 2;
imgName = head.substring(index, head.length() - 1); // 上傳文件時的文件名
imgName.lastIndexOf(".");
String suffix = imgName.substring(imgName.lastIndexOf(".")); // 文件後綴
if (!suffix.equals(".jpeg") && !suffix.equals(".jpg")
&& !suffix.equals(".png") && !suffix.equals(".gif")
&& !suffix.equals(".bmp")) {
System.out.println("innn******************");
// 非法文件
request.setAttribute("content", content);
request.setAttribute("email", email);
request.setAttribute("tag", tag);
request.setAttribute("type", type);
request.setAttribute("errorinfo",
"*您上傳的文件不合法,只能上後綴為jpg,bmp,png,gif,jpeg的圖片");
request.getRequestDispatcher("add.jsp").forward(request,
response); // 重新導航到表單頁
return;
}
imgName = System.currentTimeMillis() + suffix;
img.write(this.getServletContext().getRealPath("/image/upload")
+ File.separator + imgName); // 寫到硬碟
}
Article msg = new Article();
msg.setContent(content);
msg.setImg("image/upload/" + imgName);
msg.setEmail(email);
msg.setKeyWord(tag);
msg.setType(typeService.querySingle(Integer.parseInt(type)));
// 從session中取User
User user = (User) request.getSession().getAttribute("user");
msg.setUser(user);
service.addMsg(msg);
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
response.getWriter()
.write("<html !DOCTYPE html><body><div style='margin;auto;font-weight:bold;'><span style='font-size;17px;'>投稿成功</span>兩秒後跳轉到首頁...</body></html>");
response.setHeader("refresh", "2;url=index.jsp");
} catch (Exception e) {
e.printStackTrace();
request.setAttribute("content", content);
request.setAttribute("email", email);
request.setAttribute("tag", tag);
request.setAttribute("type", type);
request.setAttribute("errorinfo", "投稿失敗,請檢查上傳文件的大小,不能大於10MB");
try {
request.getRequestDispatcher("add.jsp").forward(request,
response);
} catch (ServletException | IOException e1) {
e1.printStackTrace();
}
return;
} finally {
try {
service.closeConnResources();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
這是我前幾天寫的,有問題再問我
『肆』 jsp+servlet如何上傳圖片到mysql資料庫,求誰幫我寫個上傳圖片的啊。
不會這方面的說
『伍』 jsp將圖片等文件上傳到伺服器根目錄下,讀取二進制流存入mysql怎麼樣實現
插入圖片到資料庫代碼片段
private Connection conn = null;
private PreparedStatement pstmt = null;
private static final String sql = "INSERT INTO images_info(image_id,image_name,image_size,image_date,image_type,image_description,author,image_data)VALUES(null,?,?,now(),?,?,?,?)";
public boolean addPhoto(ImageVo imageVo) {
boolean flag = false;
try{
//將文件轉換為流文件
InputStream photoStream = new FileInputStream(imageVo.getImageData());
//獲取資料庫連接
conn = ConnectionFactory.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, imageVo.getImageName());
pstmt.setInt(2, imageVo.getImageSize());
pstmt.setString(3 , "jpg");//圖片類型
pstmt.setString(4, imageVo.getDescription());
pstmt.setString(5, imageVo.getAuthor());
pstmt.setBinaryStream(6, photoStream, (int)imageVo.getImageData().length());
int row = pstmt.executeUpdate();
if(row == 1){
flag = true;
}
}catch(FileNotFoundException fe){
fe.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}finally{
if(null != pstmt){
try{pstmt.close();}
catch(SQLException e){
e.printStackTrace();
}
}
if(null != conn){
try{conn.close();}
catch(SQLException e){
e.printStackTrace();
}
}
}
return flag;
}
『陸』 求一段jspsmartupload上傳圖片代碼 並將圖片名和路徑保存到mysql
在JSP中上傳圖片的工作模式是這樣,在伺服器設置一個文件夾如:upload_images 然後在資料庫中只保存所上傳的圖片文件名。至於你說要將圖片轉成二進制保存到mysql是不太現實的。
以下你是要的
up1.jsp
<formname="form1"method="post"action="upfile.jsp"enctype="multipart/form-data">
<tablewidth="71%"border="1"cellspacing="0"cellpadding="5"align="center"bordercolordark="#CCCCCC"bordercolorlight="#000000">
<trbgcolor="#CCCCCC">
<tdwidth="691"height="22"align="left"valign="middle"bgcolor="#CCCCCC">文件上傳</td>
</tr>
<tralign="center"valign="middle">
<tdheight="32"align="left"valign="top"id="upid">文件:
<inputtype="file"name="file1"style="width:400"class="tx1"value=""size="20">
</td>
</tr>
<tralign="center"valign="middle">
<tdheight="28"valign="top"bgcolor="#eeeeee"><inputtype="submit"name="Submit"value="·提交·"class="bt">
<inputtype="reset"name="Submit2"value="·重執·"class="bt"></td>
</tr>
<tralign="center"valign="middle">
<tdheight="12"></td>
</tr>
</table>
</form>
up2.jsp(獲取所上傳的圖片代碼
request.setCharacterEncoding("GBK");
Stringinfo="";
Stringjump="";
SmartUploadsu=newSmartUpload();
su.initialize(pageContext);
su.setTotalMaxFileSize(5242880);//設置單個文件的大小
su.setAllowedFilesList("jpg,gif,JPG,GIF");//設置可以上傳的擴展名
su.setDeniedFilesList("exe,bat,jsp,htm,html,,");//設置不可上傳的擴展名
try{
su.upload(); //開始上傳
su.save("/image");//保存到IMAGE文件夾中
com.jspsmart.upload.Filefile=su.getFiles().getFile(0);
info="文件已經上傳成功,請在圖片中輸入:image//"+file.getFileName();
jump="";
}catch(Exceptione){
info="上傳文件不合規定.";
jump="<Ahref=upfile.jsp>[點擊這里返回上傳文件]</A>";;
}
out.println(info+"<br>"+jump);
『柒』 jsp實現文件上傳到mysql資料庫並能下載文件模塊案列
不知道你基礎怎麼樣,這是最原始最簡單的案例了,html代碼是你要選擇文件的界面,jsp代碼請命名為smartupload_demo02.jsp(因為html裡面表單的action是提交到這個頁面,當然你可以改,html表單action與jsp名稱一致就行)
另外還有很重要的一件事,你需要下載一個SmartUpload.jar插件放到你的web目錄的lib文件夾下面,如果你不知道怎麼下網路,再不行給個郵箱我發給你。不理解的地方可以聯系我[email protected],希望可以幫到你。
html代碼:
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<form action="smartupload_demo02.jsp" method="post" enctype="multipart/form-data">
姓名:<input type="text" name="uname"><br>
照片:<input type="file" name="pic"><br>
<input type="submit" value="上傳">
<input type="reset" value="重置">
</form>
</body>
</html>
jsp代碼:
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="org.lxh.smart.*"%>
<%@ page import="cn.mldn.lxh.util.*"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培訓</title></head>
<body>
<%
request.setCharacterEncoding("GBK") ;
%>
<%
SmartUpload smart = new SmartUpload() ;
smart.initialize(pageContext) ; // 初始化上傳操作
smart.upload() ; // 上傳准備
String name = smart.getRequest().getParameter("uname") ;
IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr()) ; // 取得客戶端的IP地址
String ext = smart.getFiles().getFile(0).getFileExt() ; // 擴展名稱
String fileName = its.getIPTimeRand() + "." + ext ;
smart.getFiles().getFile(0).saveAs(this.getServletContext().getRealPath("/")+"upload"+java.io.File.separator + fileName) ;
%>
<%=smart.getFiles().getFile(0).getFileName().matches("^\\w+.(jpg|gif)$")%>
<h2>姓名:<%=name%></h2>
<img src="../upload/<%=fileName%>">
</body>
</html>
『捌』 jsp如何將圖片上傳到伺服器某個文件夾裡面,而路徑存到mysql資料庫中,然後將資料庫中的圖片顯示到另一頁面
你把圖片存到資料庫?還是只存的圖片名? 用smartupload 控制項來完成 你{ // 上傳操作 mySmartUpload.upload(); //以原文件名存儲在web伺服器虛擬
『玖』 jsp如何上傳圖片到資料庫
jsp上傳圖片到數據,在資料庫中有一種類型就是blob存儲類型,就是用於儲存二進制的。在java.sql裡面的PreparedStatment有個setBlob()方法存入資料庫,還有ResultSet里的getBlob()就是讀取,詳情你可以看JDBC Blob如何使用。
在jsp里上傳圖片很少用上述方式存儲到資料庫中,一般是將圖片上傳到伺服器項目目錄文件夾中,然後資料庫中保存該圖片文件的地址,如/item/upload/images/我上傳的圖片.jpg
『拾』 求JSP上傳圖片到MYSQL資料庫,要源代碼
不回答你這個問題,不建議你這樣存,文件還是單存比較好。
拿你沒辦法,文件上傳到伺服器的部分自己解決,存到資料庫:
String
sql
="update
picture
set
dress
=
?";
pStatement
=
con.prepareStatement(sql);
InputStream
input
=
new
FileInputStream
(img);
pStatement.setBinaryStream(1,
input,
input.
available
());
int
res
=
pStatement.executeUpdate();