當前位置:首頁 » 文件管理 » mvc上傳附件

mvc上傳附件

發布時間: 2023-05-29 15:05:56

1. springmvc 怎麼將文件上傳linux伺服器

Spring MVC為文件上傳提供了直接的支持,這種支持是通過即插即用的MultipartResolver實現的。Spring使用Jakarta Commons FileUpload 技術實現了一個MultipartResolver實現類:CommonsMultipartResolver。
Spring MVC上下文中默認沒有裝配MultipartResolver,因此默認情況下不能處理文件的上傳工作。如果想要使用Spring的文件上傳功能,需要先在上下文中配置MultipartResolver。
第一步:配置MultipartResolver
使用CommonsMultipartResolver配置一個MultipartResolver解析器:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"
p:uploadTempDir="upload/temp"
/>

defaultEncoding必須和用戶JSP的pageEncoding屬性一致,以便正確讀取表單的內容。uploadTempDir是文件上傳過程所使用的臨時目錄,文件上傳完成後,臨時目錄中的臨時文件會被自動清除。
第二步:編寫文件上傳表單頁面和控制器
JSP頁面如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<h1>選擇上傳文件</h1>
<form action="<%=basePath%>user/upload.do" method="post" enctype="multipart/form-data">
文件名:<input type="text" name="name" /><br/>
<input type="file" name="file" /><br/>
<input type="submit" />
</form>
</body>
</html>

注意:負責上傳的表單和一般表單有一些區別,表單的編碼類型必須是"Multipart/form-data"
控制器UserController如下:

package com.web;

import java.io.File;
import java.io.IOException;

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;
@Controller
@RequestMapping(value = "/user")
public class UserController {
@RequestMapping(value = "/upload.do")
public String updateThumb(@RequestParam("name") String name,
@RequestParam("file") MultipartFile file)
throws IllegalStateException, IOException {
if (!file.isEmpty()) {
file.transferTo(new File("d:/temp/"
+ name
+ file.getOriginalFilename().substring(
file.getOriginalFilename().lastIndexOf("."))));
return "redirect:success.html";
} else {
return "redirect:fail.html";
}
}
}

Spring MVC會將上傳文件綁定到MultipartFile對象中。MultipartFile提供了獲取上傳文件內容、文件名等內容,通過transferTo方法還可將文件存儲到硬體中,具體說明如下:
byte[] getBytes() :獲取文件數據
String getContentType():獲取文件MIME類型,如image/pjpeg、text/plain等
InputStream getInputStream():獲取文件流
String getName():獲取表單中文件組件的名字
String getOriginalFilename():獲取上傳文件的原名
long getSize():獲取文件的位元組大小,單位為byte
boolean isEmpty():是否有上傳的文件
void transferTo(File dest):可以使用該文件將上傳文件保存到一個目標文件中
源碼:uploadtest.zip

2. springmvc中實現文件上傳時,需要注意哪些事項 csdn

首先 spring mvc文件上傳需要配置的節點

<beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<propertyname="maxUploadSize"value="209715000"/><!--限制上傳最大為200MB--><!--4MB4194304-->
<propertyname="defaultEncoding"value="UTF-8"/>
<propertyname="resolveLazily"value="true"/>
</bean>

限制文件大小,設置編碼字元集,resolveLazily 是捕獲文件過大所需塌豎。

然後在團遲大後台接收頁面,提交文件類型的文件 自己保存旦扮即可

3. .net MVC中 在視圖中上傳的附件圖片怎麼保存到資料庫

圖片保存到資料庫不是最佳的選擇.

你可以搜索一下Uploadify 插件. 這個插件非常好用
一般將圖片存為圖片文件.

大致代碼如下:

$("#btn_upload_attachment").uploadify({
height: 25,
swf: '../Scripts/plugin/uplodify/uploadify.swf',
uploader: '/Home/Upload',
queueSizeLimit: 1,
formData: { ID: newId },
buttonText: '選擇文件',
width: 80,
onUploadSuccess: function (file, data, response) {
eval("data=" + data);
AddToAttachmentList(data.Data);
}
});

後台代碼處理:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Upload(HttpPostedFileBase fileData, Guid? ID)
{
if (fileData != null)
{
try
{
// 文件上傳後的保存路徑
var filePath = Path.Combine(ConfigurationManager.AppSettings["BusinessFiles"], Ticket.OrgId.ToString());
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
var fileName = Path.GetFileName(fileData.FileName);// 原始文件名稱
var fileExtension = Path.GetExtension(fileName); // 文件擴展名
var fileID = Guid.NewGuid();
var saveName = fileID.ToString() + fileExtension; // 保存文件名稱

fileData.SaveAs(filePath + "/" + saveName);
// 作為臨時附件存入附件表
var attachments = new Attachments();
attachments.ID = fileID;
attachments.OrgID = Ticket.OrgId;
attachments.BusinessType = (byte)BusinessType.TransferContract;
attachments.Status = (byte)AttachmentStatus.Temp;
if (ID.HasValue)
{
attachments.BusinessID = ID.Value;
}
attachments.Extension = fileExtension;
attachments.Name = fileName;
attachments.Size = fileData.ContentLength;
attachments.UploadTime = GetNow();
attachments.UploadBy = Ticket.EmployeeName;
attachments.UploadByID = Ticket.UserId;
AttachmentsBLL.SaveAttachment(attachments);
return Json(new { Success = true, FileName = fileName, SaveName = saveName, FileID = fileID, Data = attachments });
}
catch (Exception ex)
{
return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
else
{
return Json(new { Success = false, Message = "請選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);
}
}

4. ASP.NET mvc上傳多個附件

asp.net默認上限40960K 90秒請求就超時。你是不是傳多了

5. .net MVC中 在視圖中上傳的附件圖片怎麼保存到資料庫

如果沒有使用ef,其實跟傳統的asp.netweb程序應用一個道理呀。用sql抽取出來的數據,table,dataset等還可以使用linq

6. 求C# MVC4 做的上傳附件下載附件的功能 附件路徑存在資料庫中 附件存在項目下的uploading文件中 求源碼

建議使用uploadfy插件,但有一點,配置文件里得改,不然不能上傳大文件
下載在Controller里返回FileStreamResult就行了
return File(new FileStream(fullPath, FileMode.Open), "application/octet-stream", Server.UrlEncode(Path.GetFileName(fullPath)));

7. ASP.NET MVC 上傳多個附件Controller 獲取不到值

在方法上加個斷點 用fiddler ff 或者是chrome 去監視你的上傳執行的get 或者post請求看有沒有東西如果有而且後台中斷變數監視里也有值~檢查你後台代碼。如果反之檢查前面的js。話說你Request.Files["UploadFile"]只有一個參數一個文件流也太簡單了。前台請求的時候多傳幾個參數來個時間戳 隨機數什麼的。只是Request.Files["UploadFile"]為空也不一定好區分你前台的代碼有沒有問題

8. java spring mvc 客戶端上傳文件到伺服器端

Web文件上傳採用POST的方式,與POST提交表單不同的是,上傳文件需要設置FORM的enctype屬性為multipart/form-data.由於上傳的文件會比較大,因此需要設置該參數指定瀏覽器使用二進制上傳。如果不設置,enctype屬性默認為application/x-www-form-urlencoded,使用瀏覽器將使用ASCII向伺服器發送數據,導致發送文件失敗。
上傳文件要使用文件域(<input type='file'/>,並把FORM的Enctype設置為multipart/form-data.

9. 請教C#MVC開發多文件上傳的問題。

F12在瀏覽器開發模式下看看上傳的過程中出現了什麼錯誤

10. spring mvc word文件上傳功能

springmvc文件上傳
1.加入jar包:
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
lperson.java中加屬性,實現get ,set方法
private String photoPath;
2.創建WebRoot/upload目錄,存放上傳的文件

1 <sf:form id="p" action="saveOrUpdate"
2 method="post"
3 modelAttribute="person"
4 enctype="multipart/form-data">
5
6 <sf:hidden path="id"/>
7 name: <sf:input path="name"/><br>
8 age: <sf:input path="age"/><br>
9 photo: <input type="file" name="photo"/><br>

上面第9行文件上傳框,不能和實體對象屬性同名,類型不同

controller配置

1 12、文件上傳功能實現 配置文件上傳解析器
2 @RequestMapping(value={"/saveOrUpdate"},method=RequestMethod.POST)
3 public String saveOrUpdate(Person p,
4 @RequestParam("photo") MultipartFile file,
5 HttpServletRequest request
6 ) throws IOException{
7 if(!file.isEmpty()){
8 ServletContext sc = request.getSession().getServletContext();
9 String dir = sc.getRealPath(「/upload」); //設定文件保存的目錄
10
11 String filename = file.getOriginalFilename(); //得到上傳時的文件名
12 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
13
14 p.setPhotoPath(「/upload/」+filename); //設置圖片所在路徑
15
16 System.out.println("upload over. "+ filename);
17 }
18 ps.saveOrUpdate(p);
19 return "redirect:/person/list.action"; //重定向
20 }

3.文件上傳功能實現 spring-mvc.xml 配置文件上傳解析器

1 <!-- 文件上傳解析器 id 必須為multipartResolver -->
2 <bean id="multipartResolver"
3 class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
4 <property name="maxUploadSize" value=「10485760"/>
5 </bean>
6
7 maxUploadSize以位元組為單位:10485760 =10M id名稱必須這樣寫

1 映射資源目錄
2 <mvc:resources location="/upload/" mapping="/upload/**"/>

隨即文件名常用的三種方式:
文件上傳功能(增強:防止文件重名覆蓋)
fileName = UUID.randomUUID().toString() + extName;
fileName = System.nanoTime() + extName;
fileName = System.currentTimeMillis() + extName;

1 if(!file.isEmpty()){
2 ServletContext sc = request.getSession().getServletContext();
3 String dir = sc.getRealPath("/upload");
4 String filename = file.getOriginalFilename();
5
6
7 long _lTime = System.nanoTime();
8 String _ext = filename.substring(filename.lastIndexOf("."));
9 filename = _lTime + _ext;
10
11 FileUtils.writeByteArrayToFile(new File(dir,filename), file.getBytes());
12
13 p.setPhotoPath("/upload/"+filename);
14
15 System.out.println("upload over. "+ filename);
16 }

圖片顯示 personList.jsp
1 <td><img src="${pageContext.request.contextPath}${p.photoPath}">${p.photoPath}</td>

熱點內容
java中編譯器默認導入jdk包 發布:2024-03-29 12:23:26 瀏覽:365
中山大學資料庫 發布:2024-03-29 12:20:44 瀏覽:695
創造與魔法哪個腳本不要錢 發布:2024-03-29 12:20:38 瀏覽:441
medly安卓版在哪裡進行作曲 發布:2024-03-29 12:20:37 瀏覽:427
php所有空格 發布:2024-03-29 12:19:28 瀏覽:656
asp建立資料庫 發布:2024-03-29 12:07:18 瀏覽:533
存儲許可權是什麼意思 發布:2024-03-29 11:55:01 瀏覽:812
網路通信加密 發布:2024-03-29 11:48:49 瀏覽:611
如何清除伺服器硬碟殘留數據 發布:2024-03-29 11:35:18 瀏覽:264
解壓包子破了個洞怎麼辦 發布:2024-03-29 11:13:52 瀏覽:527