サーバーはクライアントのピクチャーを受け入れます
2561 ワード
サーバーを书いてクライアントの画像を受け取ってデータベースに保存する例を书いて、どのようにするか分からないで、结果はやはり基础がしっかりしていないで、httpに対してかばんをつかんで、HTTPの要求の情报を见て、急に多くのことを理解したと感じます.今またみんなが分かち合うことを望んで、助けがあることを望みます.
これはjspのアップロード画像のフォームで、コードは試験してきたので、テストのために必要です.
もちろん対応するサーブレットが必要ですが、まずパッケージをつかんで彼が送ったものを見てみましょう.
バッグをつかんだ結果は次の図のようです.
上のリクエストのヘッダを見てみましょう.
Accept:ブラウザが処理できるタイプ.
Accept-Encoding:ブラウザはサーバーに自分がサポートできるタイプを教える
Cache-Control:要求とそれに従うキャッシュメカニズムの作成
Content-Type:multipart/form-dataはファイルリクエストのIDです
主に下記のRequest Payloadをご紹介します
------WebKitFormBoundaryVcgWIn 0 xGWgXTsCe:フォームリクエスト内容を分割するために使用されるもので、1つのフォームのリクエスト内容は、HTTPに表示されるのは大きく2つの部分に分けられます.
Content-Disposition:フォーム情報、フォーム名、フォーム転送ファイルの名前が表示されます
Content-type:フォームが転送するファイルのタイプ.
あとはアップロードするバイナリファイルです
これらのことを知って、file uploadというjarの中でファイルのアップロードをどのように実現したのかを知るべきでしょう.HTTPヘッダ情報を解析して判断し,カプセル化し,キューで得られたストリームを読み出し書き込み操作する.
FileuploadのFileItemはHTTPのRequest Payloadをカプセル化した結果であり,対応する方法もその情報をとる.
サーブレットのコードを添付します.
これはjspのアップロード画像のフォームで、コードは試験してきたので、テストのために必要です.
<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action="servlet/AcceptFileServlet" method="post" enctype="multipart/form-data">
<input type="file" name="image" size="50" />
<br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>
もちろん対応するサーブレットが必要ですが、まずパッケージをつかんで彼が送ったものを見てみましょう.
バッグをつかんだ結果は次の図のようです.
上のリクエストのヘッダを見てみましょう.
Accept:ブラウザが処理できるタイプ.
Accept-Encoding:ブラウザはサーバーに自分がサポートできるタイプを教える
Cache-Control:要求とそれに従うキャッシュメカニズムの作成
Content-Type:multipart/form-dataはファイルリクエストのIDです
主に下記のRequest Payloadをご紹介します
------WebKitFormBoundaryVcgWIn 0 xGWgXTsCe:フォームリクエスト内容を分割するために使用されるもので、1つのフォームのリクエスト内容は、HTTPに表示されるのは大きく2つの部分に分けられます.
Content-Disposition:フォーム情報、フォーム名、フォーム転送ファイルの名前が表示されます
Content-type:フォームが転送するファイルのタイプ.
あとはアップロードするバイナリファイルです
これらのことを知って、file uploadというjarの中でファイルのアップロードをどのように実現したのかを知るべきでしょう.HTTPヘッダ情報を解析して判断し,カプセル化し,キューで得られたストリームを読み出し書き込み操作する.
FileuploadのFileItemはHTTPのRequest Payloadをカプセル化した結果であり,対応する方法もその情報をとる.
サーブレットのコードを添付します.
DiskFileItemFactory factory = new DiskFileItemFactory();
//
String tempPath = getServletContext().getRealPath("/temp");
String photoPath = getServletContext().getRealPath("/photo");
System.out.println(photoPath);
// 5M
factory.setSizeThreshold(1024*1024*5);
//
factory.setRepository(new File(tempPath));
//
ServletFileUpload fileUpload = new ServletFileUpload(factory);
try {
// HTTP
List<FileItem> list = fileUpload.parseRequest(request);
for (FileItem fileItem : list) {
//
if(fileItem.getContentType().equals("image/png")){
String filename = fileItem.getName();
try {
//
fileItem.write(new File(photoPath));
System.out.println("yes");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//
else{
System.out.println("no");
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}