Jeesite4 のローカルおよびサーバーのファイルと写真のアップロードの詳細

皆さん、旧正月明けましておめでとうございます。古い友人のシャオ Q が戻ってきました。最近、彼は会社のプロジェクト開発で忙しく、旧正月も忙しいため、コンテンツを更新する時間がありませんでした。少し不安ですか? 会社では最近jeesite4を使ってプロジェクトを開発しているのですが、私はこのフレームワークに全く馴染みがなく、困ったときはいつも調べて使っています。いいえ、ファイルをアップロードしたり写真をアップロードしたりするときに直接スタックしました。Baidu で長い間 Google で調べましたが解決策が見つからず、開発者の ThinkGem 氏に相談したところ、ようやく解決策が見つかりました。そこで、今後 jeesite4 を使用する同志が寄り道をしないように、私の採掘場までの道のりを簡単にまとめ、お役に立てれば幸いです。

まず最初に、jeesite4 が提供するローカル アップロード ファイルと画像用のコンポーネント プロパティを紹介します。

ファイルアップロード ファイルのアップロード:
1、文件上传:
<#form:fileupload id="upload1" bizKey="${user.id}" bizType="user_upload1"
	uploadType="all" class="required" readonly="false"/>
后台代码:FileUploadUtils.saveFileUpload(user.getId(), "user_upload1");

2、图片上传:
<#form:fileupload id="upload2" bizKey="${user.id}" bizType="user_upload2"
	uploadType="image" class="required" readonly="false"/>
后台代码:FileUploadUtils.saveFileUpload(user.getId(), "user_upload2");

3、返回路径:
<#form:fileupload id="upload3" returnPath="true"
	filePathInputId="upload3Path" fileNameInputId="upload3Name"
	uploadType="image" readonly="false" maxUploadNum="3" isMini="false"/>
<#form:input name="upload3Path" class="form-control"/>
<#form:input name="upload3Name" class="form-control"/>
コンポーネントのプロパティ:
var p = {
    
    
	// 标签参数
	id: id!,					// 元素ID
	bizKey: bizKey!,			// 业务表的主键值(与附件关联的业务数据)
	bizType: bizType!,			// 业务表的上传类型(全网唯一,推荐格式:实体名_上传类型,例如,文章图片:article_photo)
	returnPath: @ObjectUtils.toBoolean(returnPath!false), 	// 是否是返回文件路径到输入框(默认false),可将路径直接保存到某个字段里
	filePathInputId: filePathInputId!,	// 设置文件URL存放的输入框的ID,当returnPath为true的时候,返回文件URL到这个输入框
	fileNameInputId: fileNameInputId!,	// 设置文件名称存放的输入框的ID,当returnPath为true的时候,返回文件名称到这个输入框
	uploadType: uploadType!'',			// 上传文件类型:all、file、image、media,若不设置,则自动根据上传文件后缀获取
	class: class!'',					// 标签框的CSS类名,设置 required 加入必填验证
	readonly: @ObjectUtils.toBoolean(readonly!false),		// 是否只读模式,只读模式下为查看模式,只允许下载
	
	allowSuffixes: allowSuffixes!'', 	// 允许上传的后缀,前台的限制,不能超越file.*AllowSuffixes的设置,例如:.jpg,.png,
	maxUploadNum: @ObjectUtils.toInteger(maxUploadNum!300),		// 多文件下允许最多上传几个,默认300个,设置-1代表不限制
	
	imageMaxWidth: @ObjectUtils.toInteger(imageMaxWidth!1024),	// 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
	imageMaxHeight: @ObjectUtils.toInteger(imageMaxHeight!768),	// 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
	
	isLazy: @ObjectUtils.toBoolean(isLazy!false),				// 设置为ture需要点击上传按钮才上传文件,否则选择后就直接上传
	
	isMini: @ObjectUtils.toBoolean(isMini!false),				// 是否是精简上传窗口,无边距,无边框
	
	preview: preview!'',										// 是否显示预览按钮,接受参数:weboffice
	
};

上記のプロパティについては、まず私が使用した特別なものをいくつか紹介します。アップロードされたファイルのパスを取得したい場合は、filePathInputId の値、つまりファイルの URL が入力される入力ボックスの ID を設定する必要があります。アップロード (カスタム) として保存され、ファイル URL がアップロード ID とともに入力ボックスに返されるように、returnPath 属性が true に設定されます。fileNameInputId についても同じことが当てはまります。

次に、jeesite4 のサーバーにファイルをアップロードする手順と方法を紹介します。

1. FileUploadServiceExtendSupport クラスを継承するツール クラスを作成するには、@Service アノテーションを追加し、内部の UploadFile(FileEntity fileEntity) メソッドと getFileUrl(FileUpload fileUpload) メソッドを書き換えます。

2. UploadFile(FileEntity fileEntity) メソッドの FileEntity クラスは、ファイルまたは画像をアップロードするための比較クラスです。

String path = fileEntity.getFileRealPath();
File file=new File(path);

アップロードされたファイルのファイル オブジェクトを取得し、独自のアップロード サーバーのロジックを完成させます。

3. getFileUrl(FileUpload fileUpload) メソッドは、アップロード ファイルが正常にアップロードされた後に返されるサーバー パスを取得するためのメソッドで、サーバー パスを取得するためのロジックを記述します。

4. bizKey 属性と bizType 属性に特に注意してください。これら 2 つの属性が削除されていない場合は、ファイル テーブル内のデータが読み取られ、削除されている場合は、指定した隠しフィールド データが読み取られます。以前はこれを十分に理解していなかったために、画像データのエコーで問題が発生しました。

さて、今日はここまでです。さらに学習知識を知りたい場合は、WeChat 公式アカウント「阿 Q Shuo」をフォローして、より多くの学習教材を入手してください。バックグラウンドでメッセージを残して疑問を表明することもできます。阿 Q が後の記事で回答します。毎日少しずつ学び、毎日少しずつ改善していきましょう。

おすすめ

転載: blog.csdn.net/Qingai521/article/details/87072891