|
![](template/yudi_2016_bbs/ybimg/common/ico_lz.png)
楼主 |
发表于 2017-5-8 12:59:38
|
显示全部楼层
主要是我上传的时候我提交代码是
var cuisineData = this.comp('cuisineDetailData');
var row = cuisineData.getCurrentRow();
var jsonList1 = eval("(" +row.val('fImage')+")");
var ownerID = row.getID();
var str="$UI2/tsj/data/attachmentSimple";
var realFileName = jsonList1[0]["realFileName"];
var fImage = str+"/"+ownerID+"/"+realFileName;
alert(fImage);
cuisineData.setValue("fImage",fImage,row);
alert(fImage);
this.comp('windowReceiver').windowEnsure(row);
是弹出他的路径和图片名称的,但是获取到就这个image%3A26872
楼下附上java代码
package teacher;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import com.alibaba.fastjson.JSONObject;
import com.justep.baas.action.ActionContext;
public class SimpleFileStore {
public static JSONObject service(JSONObject params, ActionContext context) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) context.get(ActionContext.REQUEST);
HttpServletResponse response = (HttpServletResponse) context.get(ActionContext.RESPONSE);
if (request.getMethod().equals("GET")) {
doGet(request, response);
} else if (request.getMethod().equals("POST")) {
doPost(request, response);
}
return null;
}
static String docStorePath;
static File docStoreDir;
static {
// System.out.println();
String baasPath = Thread.currentThread().getContextClassLoader().getResource("").getPath() + ".." + File.separator + "..";
docStorePath = baasPath + File.separator + "model" + File.separator + "UI2" + File.separator + "tsj" + File.separator + "data" + File.separator + "attachmentSimple";
File file = new File(docStorePath);
if (!(file.exists() && file.isDirectory())) {
file.mkdirs();
}
docStoreDir = file;
}
/**
* get为获取文件 浏览或者下载
**/
private static void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(45611);
String realFileName = request.getParameter("realFileName");
System.out.println(realFileName+"111111111");
String operateType = request.getParameter("operateType");
if ("copy".equals(operateType)) {
copyFile(request, response);
} else {
getFile(request, response);
}
}
private static void copyFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println(123123132);
String ownerID = request.getParameter("ownerID");
String targetOwnerID = request.getParameter("targetOwnerID");
String storeFileName = request.getParameter("storeFileName");
System.out.println(storeFileName+":2222");
File file = new File(docStorePath + File.separator + ownerID + File.separator + storeFileName);
// System.out.println("file"+file);
File targetFile = new File(docStorePath + File.separator + targetOwnerID + File.separator + storeFileName);
FileUtils.copyFile(file, targetFile);
}
private static final int BUFFER_SIZE = 32768 * 8;
private static void getFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println(13333);
String ownerID = request.getParameter("ownerID");
String realFileName = URLEncoder.encode(request.getParameter("realFileName"), "utf-8");
String storeFileName = request.getParameter("storeFileName");
String operateType = request.getParameter("operateType");
/* String fileSize = request.getParameter("fileSize"); */
File file = new File(docStorePath + File.separator + ownerID + File.separator + storeFileName);
FileInputStream fis = new FileInputStream(file);
/* response.setContentType(mimeType); */
/* response.setHeader("Content-Length", String.valueOf(part.getSize())); */
response.setHeader("Cache-Control", "pre-check=0, post-check=0, max-age=0");
String fileNameKey = "filename";
/*
* UserAgent ua = com.justep.ui.util.NetUtils.getUserAgent(request);
* if(Browser.FIREFOX.equals(ua.getBrowser().getGroup())){ fileNameKey =
* "filename*"; }
*/
if ("download".equals(operateType)) {
response.addHeader("Content-Disposition", "attachment; " + fileNameKey + "=\"" + realFileName + "\"");
} else {
response.addHeader("Content-Disposition", "inline; " + fileNameKey + "=\"" + realFileName + "\"");
}
OutputStream os = response.getOutputStream();
byte[] buffer = new byte[BUFFER_SIZE];
try {
int read;
while ((read = fis.read(buffer)) != -1) {
os.write(buffer, 0, read);
}
} finally {
fis.close();
}
}
/**
* post为上传
**/
protected static void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("111111111+++");
String contentType = request.getContentType();
try {
if ("application/octet-stream".equals(contentType)) {
storeOctStreamFile(request, response);
} else if (contentType != null && contentType.startsWith("multipart/")) {
storeFile(request, response);
} else {
throw new RuntimeException("not supported contentType");
}
} catch (Exception e) {
e.printStackTrace();
throw new IOException("storeFile异常");
}
response.getWriter().write("");
}
private static void storeOctStreamFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
System.out.println(2);
InputStream in = null;
FileOutputStream storeStream = null;
try {
String ownerID = request.getParameter("ownerID");
String storeFileName = request.getParameter("storeFileName");
// System.out.println("storeFileName"+storeFileName);
in = request.getInputStream();
String storePath = docStorePath + File.separator + ownerID;
getOrCreateFile(storePath);
File toStoreFile = new File(storePath + File.separator + storeFileName);
storeStream = new FileOutputStream(toStoreFile);
IOUtils.copy(in, storeStream);
} finally {
IOUtils.closeQuietly(in);
IOUtils.closeQuietly(storeStream);
}
}
private static File getOrCreateFile(String path) {
System.out.println(3);
File storeDir = new File(path);
// System.out.println(storeDir);
if (!(storeDir.exists() && storeDir.isDirectory())) {
storeDir.mkdirs();
}
return storeDir;
}
public static List<FileItem> parseMultipartRequest(HttpServletRequest request) throws FileUploadException {
System.out.println(4);
DiskFileItemFactory factory = new DiskFileItemFactory();
//System.out.println(222);
ServletContext servletContext = request.getSession().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Parse the request
@SuppressWarnings("unchecked")
List<FileItem> items = upload.parseRequest(request);
for (FileItem fileItem : items) {
System.out.println(fileItem);
}
return items;
}
private static void storeFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println(5);
HashMap<String, String> params = new HashMap<String, String>();
System.out.println(params);
List<FileItem> items = parseMultipartRequest(request);
// System.out.println(items);
Iterator<FileItem> iter = items.iterator();
FileItem fileItem = null;
String ownnname ="";
while (iter.hasNext()) {
FileItem item = iter.next();
// System.out.println(item);
// System.out.println(item.isFormField());
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
// System.out.println(name+"++++"+value);
params.put(name, value);
} else {
/*
* String fieldName = item.getFieldName(); String fileName =
* item.getName(); String contentType = item.getContentType();
* boolean isInMemory = item.isInMemory(); long sizeInBytes =
* item.getSize();
*/
// System.out.println(item);
ownnname=item.getName();
System.out.println(ownnname);
fileItem = item;
}
}
if (fileItem != null) {
int i=1;
String storePath = docStorePath + File.separator + params.get("ownerID");
// System.out.println(storePath);
File storeDir = new File(storePath);
if (!(storeDir.exists() && storeDir.isDirectory())) {
storeDir.mkdirs();
}
File toStoreFile = new File(storePath + File.separator + ownnname);
System.out.println(storePath+":storePath");
System.out.println(params.get("storeFileName")+"2222");
// System.out.println(toStoreFile);
System.out.println("toStoreFile:+++++"+toStoreFile);
fileItem.write(toStoreFile);
i++;
System.out.println(i);
}
}
}
|
|