mvc多文件上傳-ag真人国际官网
① mvc視圖中怎麼上傳圖片並顯示
如果只是上傳的話那太容易了,如果還要顯示那就難了,因為要顯示的話就不能只向伺服器提交一次請求,必須非同步提交。下面的例子是我親自寫的,非同步提交上傳圖片並預覽。全部代碼都在。
返回到前台頁面的json格式對象是以類的對象。
publicclassreturnimage
{
publicstringbig{get;set;}
publicstringsmall{get;set;}
publicstringissuccessfull{get;set;}
publicstringmessage{get;set;}
}
對於上傳和生成縮略圖,請自行完成,以下是asp.netmvc的例子。
publicclasshomecontroller:controller
{
//
//get:/home/
publicactionresultindex()
{
returnview();
}
///
///上傳圖片
///
///
publicactionresultuploadimage()
{
//定義錯誤消息
jsonresultmsg=newjsonresult();
try
{
//接受上傳文件
httppostedfilebasepostfile=request.files["upimage"];
if(postfile!=null)
{
datetimetime=datetime.now;
//獲取上傳目錄轉換為物理路徑
stringuploadpath=server.mappath("~/uploadfiles/" time.year "/" time.tostring("yyyymmdd") "/");
//文件名
stringfilename=time.tostring("yyyymmddhhmmssfff");
//後綴名稱
stringfiletrype=system.io.path.getextension(postfile.filename);
//獲取文件大小
longcontentlength=postfile.contentlength;
//文件不能大於2m
if(contentlength<=1024*2048)
{
//如果不存在path目錄
if(!directory.exists(uploadpath))
{
//那麼就創建它
directory.createdirectory(uploadpath);
}
//保存文件的物理路徑
stringsavefile=uploadpath filename "_big" filetrype;
try
{
//保存文件
postfile.saveas(savefile);
//保存縮略圖的物理路徑
stringsmall=uploadpath filename "_small" filetrype;
makethumbnail(savefile,small,320,240,"w");
returnimageimage=newreturnimage();
image.big="/uploadfiles/" time.year "/" time.tostring("yyyymmdd") "/" filename "_big" filetrype;
image.small="/uploadfiles/" time.year "/" time.tostring("yyyymmdd") "/" filename "_small" filetrype;
msg=json(image);
}
catch
{
msg=json("上傳失敗");
}
}
else
{
msg=json("文件大小超過限制要求");
}
}
else
{
msg=json("請選擇文件");
}
}
catch(exceptione)
{
;
}
msg.contenttype="text/html";
returnmsg;
}
///
由於回答超過最大限制,///生成縮略圖的代碼請向我索取
② 求springmvc大文件上傳詳解及實例代碼
springmvc的文件上傳非常簡便,首先導入文件上傳依賴的jar:
在springmvc-servlet.xml配置文件中配置文件解析器:
注意解析器的id必須等於multipartresolver,否則上傳會出現異常
import org.apache.commons.io.fileutils;
import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.requestparam;
import org.springframework.web.multipart.multipartfile;
import org.springframework.web.multipart.commons.commonsmultipartfile;
import java.io.file;
@controller
public class filecontroller {
/**
* 上傳單個文件操作
* multipartfile file就是上傳的文件
* @return
*/
@requestmapping(value = "/upload1.html")
public string fileupload1(@requestparam("file") multipartfile file) {
try {
//將上傳的文件存在e:/upload/下
fileutils.inputstreamtofile(file.getinputstream(), new file("e:/upload/",
file.getoriginalfilename()));
} catch (exception e) {
e.printstacktrace();
}
//上傳成功返回原來頁面
return "/file.jsp";
}}
上傳文件時,controller的方法中參數類型是multipartfile即可將文件映射到參數上。
頁面:
file.jsp: