cos は、HTTP アップロード ファイル用に O'Rrilly によって開発されたオープンソース コンポーネントです。この記事では、COS を使用してファイル アップロード機能を実装する方法を共有します。興味のある友人は一緒に見てください。cos は、HTTP アップロード ファイル用に O'Rrilly によって開発されたオープンソース コンポーネントです
が必要です。 cos.jar
cos ファイルのアップロードは非常に簡単で、fileupload よりもさらに簡単です。ただし、最大アップロード サイズを試してみましたが、それを超えると直接クラッシュします:
java.io.IOException:投稿されたコンテンツの長さ 1627105576 は、制限 889192448 を超えています --->バイト、800M を超えています
Servelt:
package com.lhy.upload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.util.Enumeration; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.oreilly.servlet.MultipartRequest; import com.oreilly.servlet.multipart.FileRenamePolicy; /** * CosServlet * 在Cos中就一个类, * MultipartRequest它是request的包装类。 */ @WebServlet(name="CosServlet",urlPatterns="/CosServlet") public class CosServlet extends HttpServlet{ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //第一步,声明文件的保存目录 String path = getServletContext().getRealPath("/up"); //第二步:文件上传 //声明文件重新命名策略,默认的不行不能重命名,自己实现FileRenamePolicy接口 // FileRenamePolicy rename = new DefaultFileRenamePolicy(); MultipartRequest multiReq = new MultipartRequest(req, path, 1024*1024*100, "UTF-8",new MyRename()); //输出所上传的文件的信息 Enumeration fileNames = multiReq.getFileNames(); while(fileNames.hasMoreElements()){ String name = (String)fileNames.nextElement(); File file = multiReq.getFile(name);//得到上传的文件 if(null != file){ String fileName = multiReq.getFilesystemName(name); //取得文件名 String contentType = multiReq.getContentType(name);//类型 System.out.println("上传的文件: " +fileName+", 文件类型: "+contentType); } } //输出所提交的表单中其它文本输入域的值 Enumeration formValue = multiReq.getParameterNames(); while(formValue.hasMoreElements()){ String param = (String)formValue.nextElement(); String value = multiReq.getParameter(param); System.out.println(value); } //第三步:如果知道input的name,还可以直接获取信息, /*resp.setContentType("text/html;charset=UTf-8"); PrintWriter out = resp.getWriter(); out.print("文件名称1:"+multiReq.getOriginalFileName("img1")); out.print("<br/>新名称:"+multiReq.getFilesystemName("img1")); out.print("<br/>类型1:"+multiReq.getContentType("img1")); out.print("<br/>大小1:"+multiReq.getFile("img1").length()); out.print("<br/>说明:"+multiReq.getParameter("desc1")); if(multiReq.getContentType("img1").contains("image/")){ out.print("<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/194/24e8d0e647e08c3cf85d607babc609ed-1.png?x-oss-process=image/resize,p_40" class="lazy" style="max-width:90%"+req.getContextPath()+"/up/"+multiReq.getFilesystemName("img1")+"' alt="COSを使用してJavaでファイルアップロード機能を実装する方法の詳細な説明" ></img>"); } out.print("<hr/>"); out.print("文件名称2:"+multiReq.getOriginalFileName("img2")); out.print("<br/>类型2:"+multiReq.getContentType("img2")); out.print("<br/>大小2:"+multiReq.getFile("img2").length()); out.print("<br/>说明2:"+multiReq.getParameter("desc2")); // out.print("<hr/>"); out.print("文件名称3:"+multiReq.getOriginalFileName("img3")); out.print("<br/>类型3:"+multiReq.getContentType("img3")); out.print("<br/>大小3:"+multiReq.getFile("img3").length()); out.print("<br/>说明3:"+multiReq.getParameter("desc3"));*/ } } /** * 重命名策略, */ class MyRename implements FileRenamePolicy{ @Override public File rename(File file) { String fileName = file.getName(); String extName = fileName.substring(fileName.lastIndexOf(".")); String uuid = UUID.randomUUID().toString().replace("-",""); String newName = uuid+extName;//abc.jpg file = new File(file.getParent(),newName); return file; } }
Form:
<form action="<c:url value='/CosServlet'/>" method="post" enctype="multipart/form-data"> File1:<input type="file" name="img1"><br /> 说明1: <input type="text" name="desc1"><br /> File2:<input type="file" name="img2"><br/> 说明2:<input type="text" name="desc2"><br/> File3:<input type="file" name="img3"><br/> 说明3:<input type="text" name="desc3"><br/> <input type="submit" /> </form>
Start Upload:
Server:
概要
以上がCOSを使用してJavaでファイルアップロード機能を実装する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
