[英]Preview image before upload in struts 2.3
我想使用struts2在數據庫中上傳文件,但問題是我想在同一頁面上選擇照片時顯示照片。
圖像將顯示這些程序。
的index.jsp
<s:form action="UploadAction.action" enctype="multipart/form-data">
<s:textfield name="ename" required="true" label="Emp Name" />
<s:file name="photo" label="Photo" required="true" />
<s:submit value="U P L O A D" />
</s:form>
UAction.java
public class UAction {
String ename, photo, msg;
public String execute() throws Exception {
msg = com.db.Admin.addemp(ename, photo);
setEname("");
return "SUCCESS";
}
Photo.java
public class Photo extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String empno = request.getParameter("e");
try {
ResultSet rs = com.db.Admin.getPhoto(empno);
if (rs.next()) {
Blob ph = (Blob) rs.getBlob(1);
byte data[] = ph.getBytes(1, (int) ph.length());
ServletOutputStream out = response.getOutputStream();
out.write(data);
}
} catch (Exception e) {
e.getMessage();
}
}
}
Admin.java
public static String addemp(String ename, String photo) {
try {
CallableStatement cs = connect().prepareCall("{call addEmp(?,?,?)}");
cs.setString(1, ename);
FileInputStream r = new FileInputStream(photo);
cs.setBinaryStream(2, r);
cs.registerOutParameter(3, Types.VARCHAR);
cs.execute();
return cs.getString(3);
} catch (Exception e) {
return e.getMessage();
}
}
public static ResultSet getData() throws Exception {
return connect().prepareCall("{call getData()}").executeQuery();
}
public static ResultSet getPhoto(String empno) throws Exception {
CallableStatement cs = connect().prepareCall("{call getPhoto(?)}");
cs.setString(1, empno);
return cs.executeQuery();
}
}
這應該用一些JavaScript代碼完成。
<img id="imagePlaceHolder" alt="your image" width="100" height="100" />
<s:file name="photo" label="Photo" required="true"
onchange="document.getElementById('imagePlaceHolder').src = window.URL.createObjectURL(this.files[0])"
/>
您可以在上傳之前預覽圖像,找到更多解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.