ホームページ >バックエンド開発 >PHPチュートリアル >kindeditorとStruts2のフレームワーク連携時に画像がアップロードできない問題_PHPチュートリアル
Strutsフレームワークはリクエストオブジェクトをカプセル化しているため、アップロードされた画像を処理する元のupload_json.jspファイルが使用できないため、kindeditorでアップロードされた画像を処理するupload_json.jspファイルを書き換えて、何度もテストを行った結果、アップロードに成功しました。写真の。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java .io.*"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="org.apache.commons.fileupload.*"%>
< ;%@ ページインポート="org.apache.commons.fileupload.disk.*"%>
<%@ ページインポート="org.apache.commons.fileupload.servlet.*"%> @ page import="com.opensymphony.xwork2.ActionContext"%>
<%@ page import="org.apache.struts2.dispatcher.MultiPartRequestWrapper"%> .json.simple.*"%>
<%
String savePath = request.getSession().getServletContext().getRealPath("/")+ "img_upload/";
//ファイル保存ディレクトリURL
String saveUrl = request.getContextPath() + "/img_upload/";
String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png", "bmp" };
//許可されるアップロードファイルの最大サイズ
//Struts2 リクエスト ラッパー フィルター
MultiPartRequestWrapper ラッパー = (MultiPartRequestWrapper) request;
String fileName =wrapper.getFileNames("imgFile")[0];
//ファイルフィルタを取得
//アップロードされたファイルの拡張子を取得
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.
out.println(getError("アップロードされたファイル拡張子は許可された拡張子ではありません。"));戻る;
// ディレクトリを確認します
out.println("アップロードディレクトリが存在しません。")); }
/ /ディレクトリの書き込み権限を確認する
out.println(getError("アップロードディレクトリに書き込み権限がありません。"))
return;
//アップロードした画像の名前を再構築します
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newImgName = df.format(new Date()) + "_"+ new Random().nextInt(1000) + " ." + ファイル拡張子;
//KEに画像ファイルのアドレスを設定します
String newFileName = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()
+ saveUrl + newImgName;
byte[] バッファ = 新しいバイト[1024];
//ファイル出力ストリームを取得する
//メモリ内の現在のファイル入力ストリームを取得します
InputStream in = new FileInputStream(file);
試してください {
int num = 0;
while ((num = in.read(buffer)) > 0) {
fos.write(buffer, 0, num);
}
} catch (例外 e) {
e.printStackTrace(System.err);
} 最後に {
in.close();
fos.close();
}
//発信给 KE
JSONObject obj = new JSONObject();
obj.put("error", 0);
obj.put("url", saveUrl + newImgName);
out.println(obj.toJSONString());
%>
<%!private String getError(String message) {
JSONObject obj = new JSONObject();
obj.put("error", 1);
obj.put("メッセージ", message);
return obj.toJSONString();
}
%>