html画像をデータベースにアップロードする2つの方法form方式とAjax方式
1、formによる提出:html部分:
2.Ajax方式提出:1.転送するすべてのデータを1つのformにカプセル化し、1つのオブジェクトにカプセル化する.属性の設定:contentType:false,processData:false,
サーブレット:は、2つの変数がピクチャの名前とパスを格納し、データ伝送の方式がバイナリタイプであるか否かを判断し、そうでなければ直接返す. ファイルサイズ、ファイルの合計サイズ、リスナーなど を設定する. requestリクエストを1つのセットに分解して開き、そのセット を巡回するある要素がピクチャ/ファイルタイプである場合、まずその名前を取得し、ピクチャが格納されているフォルダを作成し、ピクチャ名に乱数を加え、入力ストリームを定義し、ピクチャ内容をストリームに読み出し(フォルダが存在するかどうかを判断することに注意)、空のファイルを作成します. 出力ストリームを作成し、画像の内容をファイルに入力し、ストリームを閉じます.要素が画像でない場合、直接コンテンツ を記録します.コンテンツとピクチャのパスをデータベースに格納
"UTF-8">
Insert title here
2.Ajax方式提出:1.転送するすべてのデータを1つのformにカプセル化し、1つのオブジェクトにカプセル化する.属性の設定:contentType:false,processData:false,
$("#add").click(function(){
var username = $("#username").val();
var age = $("#age").val();
var data = new FormData($("#myForm")[0]);
$.ajax({
url:"/myWish/UploadServlet",
async:true,
type:"post",
data:data,
contentType:false,
processData: false,
success:function(data){
if(data==1){
layer.close(index1)
init();
$("#username").val("");
$("#age").val("");
$("#info").val("");
$("#createDate").val("");
$("#myfile").val("");
}
else{
layer.close(index1)
layer.alert(" ",{icon: 2});
}
},
error:function(error){
layer.close(index1)
layer.alert(" ",{icon: 2});
}
})
})
サーブレット:
import java.io.IOException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import com.motherweb.db.MysqlUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public UploadServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=UTF-8");
resp.setCharacterEncoding("utf-8");
//
String myFile = "";
// Api
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
// muitipart/form-data
if(!ServletFileUpload.isMultipartContent(req)) {
//resp.getWriter().println(" enctype multipart/form-data ");
System.out.println(" enctype multipart/form-data ");
return;
}
// 8M
fileUpload.setFileSizeMax(8*1024*1024);
// ( , , 60M)
fileUpload.setSizeMax(60*1024*1024);
// [ ]
// fileUpload.setProgressListener(new ListenerUploadProgress());
//
try {
List<FileItem> parseRequest = fileUpload.parseRequest(req);
//
for (FileItem fileItem : parseRequest) {
// form
if(!fileItem.isFormField()) {
//
String fileName = fileItem.getName();
InputStream fileStream = fileItem.getInputStream();
// ( )
String parentDir = this.getServletContext().getRealPath("/upload");
// UUID+ ,
String realFileName = UUID.randomUUID().toString()+"-"+fileName;
//
File file = new File(parentDir,realFileName);
//
if(!file.getParentFile().exists()) {
// [ ]file.madir
file.getParentFile().mkdirs();
}
//
OutputStream out = new FileOutputStream(file);
//
byte[] buffer = new byte[1024];
int len = -1;
// 1kb(1024byte), -1
while((len = fileStream.read(buffer))!=-1) {
// 1kb(1024byte)
out.write(buffer,0, len);
}
System.out.println(parentDir);
System.out.println(realFileName);
myFile = realFileName;
//
out.flush();
//
out.close();
fileStream.close();
}else {
// //
String fieldName = fileItem.getFieldName();
//
String fieldValue = fileItem.getString("UTF-8");
System.out.println(fieldName+":"+fieldValue);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
resp.getWriter().print(myFile);
if(!myFile.equals("")) {
//
String sql1 = "insert into t_url(image) values(\""+myFile+"\")";
int flag = MysqlUtil.update(sql1);
resp.getWriter().print(flag);
}
}
}