//controller
package com.kinth.charts.web.controller
import java.io.File
import java.io.IOException
import javax.servlet.http.HttpServletRequest
import org.apache.commons.io.FileUtils
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestMethod
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.multipart.MultipartFile
import com.kinth.admin.server.rest.api.accessers.PictureAccesser
import com.kinth.admin.web.controller.BaseController
import com.kinth.base.rest.api.accesser.ResteasyWebResourceAccesserFactory
import com.kinth.security.web.service.CurrentUser
import com.mysql.fabric.Response
import net.sf.json.JSONObject
@Controller
@RequestMapping("/uploadPicture")
public class UploadController extends BaseController{
@Autowired
private ResteasyWebResourceAccesserFactory accesserFactory
@RequestMapping(value="/add", method=RequestMethod.POST)
public String addPicture(@RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException{
PictureAccesser accesser=this.accesserFactory.createAccesser(PictureAccesser.class, CurrentUser.getAccessToken())
String response = accesser.addPicture(myfiles, request)
accesser.close()
return response
}
@RequestMapping(value="/add", method=RequestMethod.GET)
public String addUser(){
return "picture/add"
}
@RequestMapping(value="/list",method=RequestMethod.GET)
public String list(){
File folder = new File("F://MyProject1//source//combat_chart//combat_chart-admin//src//main//webapp//static//js//u_editor//jsp//upload")
File[] files = folder.listFiles()
request.setAttribute("files", files)
return "picture/list"
}
@RequestMapping(value="/{fileName}/delete", method=RequestMethod.GET)
public String deletePicture(@PathVariable("fileName") String fileName) throws IOException{
PictureAccesser accesser=this.accesserFactory.createAccesser(PictureAccesser.class, CurrentUser.getAccessToken())
String response = accesser.deletePicture(fileName)
accesser.close()
return response
}
@RequestMapping(value="/uploadimage", method=RequestMethod.POST)
public String config(){
return "controller"
}
@RequestMapping(value="/uploadimage", method=RequestMethod.GET)
public String configw(){
return "controller"
}
}
//Accesser
package com.kinth.admin.server.rest.api.accessers
import java.io.File
import java.io.IOException
import javax.servlet.http.HttpServletRequest
import org.apache.commons.io.FileUtils
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.multipart.MultipartFile
import com.kinth.admin.server.rest.api.interfaces.PictureInterface
import com.kinth.base.rest.api.accesser.ResteasyWebResourceAccesser
public class PictureAccesser extends ResteasyWebResourceAccesser implements PictureInterface {
public PictureAccesser(String resourceRoot) {
super(resourceRoot)
// TODO Auto-generated constructor stub
}
@Override
public String addPicture(@RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException{
//如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解
//如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解
//并且上传多个文件时,前台表单中的所有<input type="file"/>的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件
for(MultipartFile myfile : myfiles){
if(myfile.isEmpty()){
System.out.println("文件未上传")
}else{
System.out.println("文件长度: " + myfile.getSize())
System.out.println("文件类型: " + myfile.getContentType())
System.out.println("文件名称: " + myfile.getName())
System.out.println("文件原名: " + myfile.getOriginalFilename())
System.out.println("========================================")
//String path="http://localhost:8082/admin/static/js/u_editor/jsp/upload/image"
String realPath = request.getSession().getServletContext().getRealPath("/static/js/u_editor/jsp/upload")
FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, myfile.getOriginalFilename()))
}
}
return "redirect:/uploadPicture/list"
}
@Override
public String deletePicture(String fileName) throws IOException {
File folder = new File("F://MyProject1//source//combat_chart//combat_chart-admin//src//main//webapp//static//js//u_editor//jsp//upload")
File[] files = folder.listFiles()
for(File file:files){
if(file.getName().equals(fileName)){
file.delete()
}
}
return "redirect:/uploadPicture/list"
}
}