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

mvc上傳文件

發布時間: 2022-01-23 23:13:44

① spring mvc上傳文件到指定的文件夾中,新手不會,

第一個參數是你的前台傳遞進來的文件。

第二個參數是request對象。
第三個參數是spring mvc 綁定數據用的對象。
根據你的代碼 你的第三個參數可以不要。

第一個參數 是前台form當中有個類似於<input type="file" name="file"/>的控制項傳遞過來的文件。

② springmvc怎麼上傳文件

spring mvc(註解)上傳文件的簡單例子,這有幾個需要注意的地方
1.form的enctype=」multipart/form-data」 這個是上傳文件必須的
2.applicationContext.xml中 <bean id=」multipartResolver」 class=」org.springframework.web.multipart.commons.CommonsMultipartResolver」/> 關於文件上傳的配置不能少

大家可以看具體代碼如下:

web.xml
[html] view plain
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>webtest</display-name>

<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/applicationContext.xml
/WEB-INF/config/codeifAction.xml
</param-value>
</context-param>

<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/codeifAction.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 攔截所有以do結尾的請求 -->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
</web-app>

applicationContext.xml
[html] view plain
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="true">

<!-- 啟動Spring MVC的註解功能,完成請求和註解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation." lazy-init="false" />

<!-- 另外最好還要加入,不然會被 XML或其它的映射覆蓋! -->
<bean class="org.springframework.web.servlet.mvc.annotation." />

<!-- 對模型視圖名稱的解析,即在模型視圖名稱添加前後綴 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />

<!-- 支持上傳文件 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

</beans>

codeifAction.xml
[html] view plain
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="true">

<bean id="uploadAction" class="com.codeif.action.UploadAction" />

</beans>

UploadAction.java
[java] view plain
package com.codeif.action;

import java.io.File;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

@Controller
public class UploadAction {

@RequestMapping(value = "/upload.do")
public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model) {

System.out.println("開始");
String path = request.getSession().getServletContext().getRealPath("upload");
String fileName = file.getOriginalFilename();
// String fileName = new Date().getTime()+".jpg";
System.out.println(path);
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}

//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
model.addAttribute("fileUrl", request.getContextPath()+"/upload/"+fileName);

return "result";
}

}

index.jsp
[html] view plain
<%@ page pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上傳圖片</title>
</head>
<body>
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="file" name="file" /> <input type="submit" value="Submit" /></form>
</body>
</html>

WEB-INF/jsp/下的result.jsp
[html] view plain
<%@ page pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上傳結果</title>
</head>
<body>
<img alt="" src="${fileUrl }" />
</body>
</html>

③ .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);
}
}

④ asp.net mvc 怎麼在服務端和客服端分別對 上傳文件類型做檢查

1.客戶端。客戶端常用的主要通過對文件名字元串進行分析,根據其擴展名進行判斷。javascript現在好像不能直接訪問客戶端上的文件了,如果有更好的辦法,歡迎交流。
2.伺服器端。伺服器端通過分析文件的二進制流,驗證文件頭部中的信息,避免改文件名後綴惡意上傳的情況。

以上資料很多,這里也放不下,網路下就好了,共勉~

⑤ spring mvc 怎麼實現上傳文件

在springmvc配置文件中這樣配置:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 編碼設置 -->
<property name="defaultEncoding" value="utf-8"/>
<!-- 上傳文件大小 -->
<property name="maxUploadSize" value="-1"/>
<!--推遲文件解析,以便在UploadAction中捕獲文件大小異常-->
<property name="resolveLazily" value="true"/>
</bean>
頁面:
<form action="upload.action" method="post" enctype="multipart/form-data">
<input type="file" name="fileUpload" />
<input type="submit" value="上傳" />
</form>

後台:
@Controller
public class UploadAction implements ServletContextAware {
private ServletContext context;
@RequestMapping("/upload")
public String upload(HttpServletRequest request) throws Exception{
//轉換請求為文件上傳請求
MultipartHttpServletRequest mrequest=(MultipartHttpServletRequest)request;
MultipartFile mfile=mrequest.getFile("file");
if(!mfile.isEmpty()){//判斷文件是否為空
path=context.getRealPath("/upload")+File.separator+mfile.getOriginalFilename();
File file=new File(path);
mfile.transferTo(file);//保存文件
}
return "跳轉頁面";
}}

⑥ springmvc怎麼實現多文件上傳

多文件上傳其實很簡單,和上傳其他相同的參數如checkbox一樣,表單中使用相同的名稱,然後action中將MultipartFile參數類定義為數組就可以。
接下來實現:
1、創建一個上傳多文件的表單:
在CODE上查看代碼片派生到我的代碼片
<body>
<h2>上傳多個文件 實例</h2>
<form action="filesUpload.html" method="post"
enctype="multipart/form-data">
<p>
選擇文件:<input type="file" name="files">
<p>
選擇文件:<input type="file" name="files">
<p>
選擇文件:<input type="file" name="files">
<p>
<input type="submit" value="提交">
</form>
</body>
2、編寫處理表單的action,將原來保存文件的方法單獨寫一個方法出來方便共用:
[java] view plain
print?在CODE上查看代碼片派生到我的代碼片
/***
* 保存文件
* @param file
* @return
*/
private boolean saveFile(MultipartFile file) {
// 判斷文件是否為空
if (!file.isEmpty()) {
try {
// 文件保存路徑
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
+ file.getOriginalFilename();
// 轉存文件
file.transferTo(new File(filePath));
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
return false;
}
3、編寫action:
@RequestMapping("filesUpload")
public String filesUpload(@RequestParam("files") MultipartFile[] files) {
//判斷file數組不能為空並且長度大於0
if(files!=null&&files.length>0){
//循環獲取file數組中得文件
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i];
//保存文件
saveFile(file);
}
}
// 重定向
return "redirect:/list.html";
}

⑦ MVC 上傳功能的例子

這是控制器代碼,我這里判斷上傳文件的格式是「.jpg",你可以換成」.CSV「格式進行檢查:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Mvc;


namespaceMvcTest1.Controllers

{

publicclassHomeController:Controller

{

publicActionResultIndex()

{

ViewBag.Message="歡迎使用ASP.NETMVC!";


returnView();

}


publicActionResultAbout()

{

returnView();

}


//上傳頁面的視圖

publicActionResultUpload()

{

returnView();

}


//上傳文件的控制項name是file1,也就是<inputtype="file"name="file1"/>

//上傳到Upload文件夾(與Controllers文件同級)

[HttpPost]

publicActionResultUploadFile()

{

HttpFileCollectionBasefiles=Request.Files;

HttpPostedFileBasefile=files["file1"];

if(file!=null&&file.ContentLength>0)

{

stringfileName=file.FileName;

//判斷文件名字是否包含路徑名,如果有則提取文件名

if(fileName.LastIndexOf("\")>-1)

{

fileName=fileName.Substring(fileName.LastIndexOf("\")+1);

}

//判斷文件格式,這里要求是JPG格式

if((fileName.LastIndexOf('.')>-1&&fileName.Substring(fileName.LastIndexOf('.')).ToUpper()==".JPG"))

{

stringpath=Server.MapPath("~/Upload/");

try

{

file.SaveAs(path+fileName);

ViewBag.message="上傳成功!";

}

catch(Exceptione)

{

throwe;

}

}

else

{

ViewBag.message="上傳的文件格式不符合要求!";

}

}

else

{

ViewBag.message="上傳的文件是空文件!";

}

returnView("Upload");

}

}

}

視圖文件是Upload.cshtml,這里是視圖代碼:

@{

ViewBag.Title="Upload";

}

<h2>

Upload</h2>

@using(Html.BeginForm("UploadFile","Home",FormMethod.Post,new{enctype="multipart/form-data"}))

{

<inputtype="file"name="file1"/>

<inputtype="submit"value="上傳"/>

}

<div>

@ViewBag.message

</div>


⑧ mvc FilePathResult如何傳遞文件參數

FilePathResult的構造為:

publicFilePathResult(
stringfileName,
stringcontentType
)

第二個參數是content type,就是文件的類型,不同文件類型瀏覽器打開方式不一樣

具體的可以參考:

http://webdesign.about.com/od/multimedia/a/mime-types-by-content-type.htm

http://www.cnblogs.com/chenghm2003/archive/2008/10/19/1314703.html

比如jpg圖片就是"image/jpeg",word文檔就是"application/msword"

⑨ asp.net mvc中如何讀取上傳的doc文件中的數據(含有中文字元)

using Aspose.Words;要引用這個dll
#region 獲取正文內容

Byte[] wordbytes = GetReadWord();//獲取文件二進制
var strFileName = Server.MapPath("~/temp/a.doc");
var strhtmlFileName = Server.MapPath("~/temp/b.htm");
var file = File.OpenWrite(strFileName);
file.Write(wordbytes, 0, wordbytes.Length);
file.Close();
file.Dispose();
Aspose.Words.Document d = new Aspose.Words.Document(strFileName);
d.Save(strhtmlFileName, SaveFormat.Html);
var htmlCode = File.ReadAllText(strhtmlFileName, Encoding.GetEncoding("GB2312"));
File.Delete(strFileName);
File.Delete(strhtmlFileName);
#endregion
htmlCode 欄位就是獲取的內容字元串

⑩ jsp在mvc模式下文件上傳

文件的上傳,一般是通過組件來完成的,也沒有什麼mvc模式不模式之分,你可以查下file-upload,或smartupload的使用方法,這兩個組件都能實現上傳操作,試試吧。

熱點內容
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:674
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:98
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:394
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:220
java教程免費下載 發布:2024-04-25 18:02:01 瀏覽:442
i西安編程 發布:2024-04-25 16:55:35 瀏覽:263
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:432
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319
部隊電腦配置有哪些 發布:2024-04-25 16:13:43 瀏覽:970
霍曼密碼鎖什麼價位 發布:2024-04-25 16:08:01 瀏覽:750