package jp.co.intra_mart.im_ui_sample.action;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.UploadUtil;
public class EnableDeleteAction {
@Resource
protected HttpServletRequest request;
@Execute(validator = false)
public String index() {
UploadUtil.checkSizeLimit(request);
return "index.jsp";
}
}
package jp.co.intra_mart.im_ui_sample.action;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.util.UploadUtil;
public class EnableDeleteAction {
@Resource
protected HttpServletRequest request;
@Execute(validator = false)
public String index() {
UploadUtil.checkSizeLimit(request);
return "index.jsp";
}
}
JSP (WEB-INF/view/enableDelete/index.jsp)
<!-- storeToを指定する場合、受信・削除処理の実装は不要です。ファイルの保存先を指定します。 -->
<imui:fileUpload storeTo="foo/bar" enableDelete="true"/>
<!-- useOuterFormIdを指定する場合は、imuiFileUploadタグを囲む formタグが必要になります。formタグのaction先にアップロード処理を行うパスを指定します。 -->
<form action="fileReceiver" id="sample_form" enctype="multipart/form-data" >
<imui:fileUpload outerFormId="sample_form" enableDelete="true"/>
</form>
<!-- urlを指定する場合は、アップロード処理を行うパスを指定します。 -->
<imui:fileUpload url="fileReceiver" enableDelete="true"/>
<!-- storeToを指定する場合、受信・削除処理の実装は不要です。ファイルの保存先を指定します。 -->
<imui:fileUpload storeTo="foo/bar" enableDelete="true"/>
<!-- useOuterFormIdを指定する場合は、imuiFileUploadタグを囲む formタグが必要になります。formタグのaction先にアップロード処理を行うパスを指定します。 -->
<form action="fileReceiver" id="sample_form" enctype="multipart/form-data" >
<imui:fileUpload outerFormId="sample_form" enableDelete="true"/>
</form>
<!-- urlを指定する場合は、アップロード処理を行うパスを指定します。 -->
<imui:fileUpload url="fileReceiver" enableDelete="true"/>
package jp.co.intra_mart.im_ui_sample.action;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import jp.co.intra_mart.common.aid.jdk.java.io.IOUtil;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;
import jp.co.intra_mart.im_ui_sample.dto.FileReceiverDto;
import jp.co.intra_mart.im_ui_sample.form.FileReceiverForm;
import jp.co.intra_mart.system.imtag.SecureParameterCryption;
public class FileReceiverAction {
@ActionForm
@Resource
protected FileReceiverForm fileReceiverForm;
@Resource
public FileReceiverDto fileReceiverDto;
@Resource
protected HttpServletRequest request;
@Resource
protected ServletContext application;
@Execute(input = "index.jsp")
public String upload() {
try {
final FormFile file = fileReceiverForm.local_file;
final String storedFile = upload(file);
fileReceiverDto.fileName = file.getFileName();
fileReceiverDto.fileSize = file.getFileSize();
final SecureParameterCryption cryption = new SecureParameterCryption();
fileReceiverDto.deleteUrl = "fileRemover?file=" + URLEncoder.encode(cryption.encrypt(storedFile), "UTF-8");
fileReceiverDto.deleteType = "POST";
} catch (final IOException e) {
fileReceiverDto.error = e.getMessage();
}
return "json.jsp";
}
protected String upload(final FormFile file) throws IOException {
// 保存先の作成
final String dir = "upload";
final PublicStorage storedDirectory = new PublicStorage(dir);
storedDirectory.makeDirectories();
final PublicStorage storedFile = new PublicStorage(dir, file.getFileName());
// ファイルデータの保存
try (InputStream is = file.getInputStream(); OutputStream os = storedFile.create()) {
IOUtil.transfer(is, os);
}
return storedFile.getCanonicalPath();
}
}
package jp.co.intra_mart.im_ui_sample.action;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import javax.annotation.Resource;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import jp.co.intra_mart.common.aid.jdk.java.io.IOUtil;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;
import jp.co.intra_mart.im_ui_sample.dto.FileReceiverDto;
import jp.co.intra_mart.im_ui_sample.form.FileReceiverForm;
import jp.co.intra_mart.system.imtag.SecureParameterCryption;
public class FileReceiverAction {
@ActionForm
@Resource
protected FileReceiverForm fileReceiverForm;
@Resource
public FileReceiverDto fileReceiverDto;
@Resource
protected HttpServletRequest request;
@Resource
protected ServletContext application;
@Execute(input = "index.jsp")
public String upload() {
try {
final FormFile file = fileReceiverForm.local_file;
final String storedFile = upload(file);
fileReceiverDto.fileName = file.getFileName();
fileReceiverDto.fileSize = file.getFileSize();
final SecureParameterCryption cryption = new SecureParameterCryption();
fileReceiverDto.deleteUrl = "fileRemover?file=" + URLEncoder.encode(cryption.encrypt(storedFile), "UTF-8");
fileReceiverDto.deleteType = "POST";
} catch (final IOException e) {
fileReceiverDto.error = e.getMessage();
}
return "json.jsp";
}
protected String upload(final FormFile file) throws IOException {
// 保存先の作成
final String dir = "upload";
final PublicStorage storedDirectory = new PublicStorage(dir);
storedDirectory.makeDirectories();
final PublicStorage storedFile = new PublicStorage(dir, file.getFileName());
// ファイルデータの保存
try (InputStream is = file.getInputStream(); OutputStream os = storedFile.create()) {
IOUtil.transfer(is, os);
}
return storedFile.getCanonicalPath();
}
}
package jp.co.intra_mart.im_ui_sample.dto;
public class FileReceiverDto {
public String fileName;
public int fileSize;
public String deleteUrl;
public String deleteType;
public String error;
}
package jp.co.intra_mart.im_ui_sample.dto;
public class FileReceiverDto {
public String fileName;
public int fileSize;
public String deleteUrl;
public String deleteType;
public String error;
}
package jp.co.intra_mart.im_ui_sample.action;
import java.io.IOException;
import java.net.URLDecoder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;
import jp.co.intra_mart.im_ui_sample.dto.FileRemoverDto;
import jp.co.intra_mart.im_ui_sample.form.FileRemoverForm;
import jp.co.intra_mart.system.imtag.SecureParameterCryption;
public class FileRemoverAction {
@ActionForm
@Resource
protected FileRemoverForm fileRemoverForm;
@Resource
public FileRemoverDto fileRemoverDto;
@Resource
protected HttpServletRequest request;
@Execute(validator = false)
public String index() {
try {
// ファイルの削除
final SecureParameterCryption cryption = new SecureParameterCryption();
final PublicStorage deleteFile = new PublicStorage(cryption.decrypt(URLDecoder.decode(fileRemoverForm.file, "UTF-8")));
if (deleteFile.exists()) {
deleteFile.remove();
} else {
fileRemoverDto.error = "delete file does not exist.";
fileRemoverDto.filePath = deleteFile.getCanonicalPath();
}
// 正常値の返却
fileRemoverDto.name = deleteFile.getName();
} catch (final IOException e) {
fileRemoverDto.error = e.getMessage();
}
return "json.jsp";
}
}
package jp.co.intra_mart.im_ui_sample.action;
import java.io.IOException;
import java.net.URLDecoder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import jp.co.intra_mart.foundation.service.client.file.PublicStorage;
import jp.co.intra_mart.im_ui_sample.dto.FileRemoverDto;
import jp.co.intra_mart.im_ui_sample.form.FileRemoverForm;
import jp.co.intra_mart.system.imtag.SecureParameterCryption;
public class FileRemoverAction {
@ActionForm
@Resource
protected FileRemoverForm fileRemoverForm;
@Resource
public FileRemoverDto fileRemoverDto;
@Resource
protected HttpServletRequest request;
@Execute(validator = false)
public String index() {
try {
// ファイルの削除
final SecureParameterCryption cryption = new SecureParameterCryption();
final PublicStorage deleteFile = new PublicStorage(cryption.decrypt(URLDecoder.decode(fileRemoverForm.file, "UTF-8")));
if (deleteFile.exists()) {
deleteFile.remove();
} else {
fileRemoverDto.error = "delete file does not exist.";
fileRemoverDto.filePath = deleteFile.getCanonicalPath();
}
// 正常値の返却
fileRemoverDto.name = deleteFile.getName();
} catch (final IOException e) {
fileRemoverDto.error = e.getMessage();
}
return "json.jsp";
}
}
package jp.co.intra_mart.im_ui_sample.dto;
public class FileRemoverDto {
public String name;
public String error;
public String filePath;
}
package jp.co.intra_mart.im_ui_sample.dto;
public class FileRemoverDto {
public String name;
public String error;
public String filePath;
}
package jp.co.intra_mart.im_ui_sample.form;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.Required;
public class FileReceiverForm {
@Required
public FormFile local_file;
}
package jp.co.intra_mart.im_ui_sample.form;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.Required;
public class FileReceiverForm {
@Required
public FormFile local_file;
}
JSP (WEB-INF/view/fileRemover/json.jsp)
<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui"%>
<%@ taglib prefix="s" uri="http://sastruts.seasar.org" %>
<%@ taglib prefix="f" uri="http://sastruts.seasar.org/functions" %>
[{
"name":"${f:h(fileRemoveDto.name)}",
"filePath":"${f:h(fileRemoveDto.filePath)}",
"error":"${f:h(fileRemoveDto.error)}"
}]
<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui"%>
<%@ taglib prefix="s" uri="http://sastruts.seasar.org" %>
<%@ taglib prefix="f" uri="http://sastruts.seasar.org/functions" %>
[{
"name":"${f:h(fileRemoveDto.name)}",
"filePath":"${f:h(fileRemoveDto.filePath)}",
"error":"${f:h(fileRemoveDto.error)}"
}]
package jp.co.intra_mart.im_ui_sample.form;
import org.seasar.struts.annotation.Required;
public class FileRemoverForm {
@Required
public String file;
}
package jp.co.intra_mart.im_ui_sample.form;
import org.seasar.struts.annotation.Required;
public class FileRemoverForm {
@Required
public String file;
}
JSP (WEB-INF/view/fileReceiver/json.jsp)
<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui"%>
<%@ taglib prefix="s" uri="http://sastruts.seasar.org" %>
<%@ taglib prefix="f" uri="http://sastruts.seasar.org/functions" %>
[{
"name":"${f:h(fileReceiverDto.fileName)}",
"size":${f:h(fileReceiverDto.fileSize)},
"deleteUrl":"${f:h(fileReceiverDto.deleteUrl)}",
"deleteType":"${f:h(fileReceiverDto.deleteType)}",
"error":"${f:h(fileReceiverDto.error)}"
}]
<%@ page contentType="application/json; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="imui" uri="http://www.intra-mart.co.jp/taglib/imui"%>
<%@ taglib prefix="s" uri="http://sastruts.seasar.org" %>
<%@ taglib prefix="f" uri="http://sastruts.seasar.org/functions" %>
[{
"name":"${f:h(fileReceiverDto.fileName)}",
"size":${f:h(fileReceiverDto.fileSize)},
"deleteUrl":"${f:h(fileReceiverDto.deleteUrl)}",
"deleteType":"${f:h(fileReceiverDto.deleteType)}",
"error":"${f:h(fileReceiverDto.error)}"
}]