ホームページ >バックエンド開発 >PHPチュートリアル >kindeditorとStruts2のフレームワーク連携時に画像がアップロードできない問題_PHPチュートリアル

kindeditorとStruts2のフレームワーク連携時に画像がアップロードできない問題_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:53:52939ブラウズ

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.*"%>

<%

// ファイル保存ディレクトリパス img_upload は、サーバーがアップロードした画像を保存するディレクトリ名です

String savePath = request.getSession().getServletContext().getRealPath("/")+ "img_upload/";
//ファイル保存ディレクトリURL
String saveUrl = request.getContextPath() + "/img_upload/";

//アップロードできるファイル拡張子を定義します

String[] fileTypes = new String[] { "gif", "jpg", "jpeg", "png", "bmp" };
//許可されるアップロードファイルの最大サイズ

long maxSize = 1024000;

//Struts2 リクエスト ラッパー フィルター
MultiPartRequestWrapper ラッパー = (MultiPartRequestWrapper) request;

//アップロードされたファイル名を取得

String fileName =wrapper.getFileNames("imgFile")[0];
//ファイルフィルタを取得

File file =wrapper.getFiles("imgFile")[0];

//アップロードされたファイルの拡張子を取得
String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();

//拡張子を確認します

if (!Arrays. asList(fileTypes).contains(fileExt)) {
out.println(getError("アップロードされたファイル拡張子は許可された拡張子ではありません。"));戻る;

}


// ディレクトリを確認します

File UploadDir = new File(savePath)

out.println("アップロードディレクトリが存在しません。")); }
/ /ディレクトリの書き込み権限を確認する

if (!uploadDir.canWrite()) {

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];
//ファイル出力ストリームを取得する

FileOutputStream fos = new FileOutputStream(savePath + newImgName);

//メモリ内の現在のファイル入力ストリームを取得します
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();
}
%>

www.bkjia.com本当http://www.bkjia.com/PHPjc/364708.html技術記事 struts フレームの request オブジェクトが封入されているため、元で処理上転送される画像の upload_json.jsp 文件は使用禁止になっており、今後は kindeditor で処理上転送される画像の upload_json.jsp 文子が使用されます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。