當前位置:首頁 » 文件管理 » spring上傳下載

spring上傳下載

發布時間: 2022-09-11 09:23:11

① 用Struts2.0+Spring2.0+hibernate3.1怎樣實現文件的上傳和下載

利用MultipartFile實現文件上傳
java中上傳文件似乎總有點麻煩,沒.net那麼簡單,記得最開始的時候用smartUpload實現文件上傳,最近在工作中使用spring的MultipartFile實現文件上傳,感覺挺簡單,在這里和大家分享一下.
一.主要有兩個java類,和一般的servlet放在一起即可.
1.FileUploadBean.java
package chb.demo.web;

import org.springframework.web.multipart.MultipartFile;

/**
* @author chb
*
*/
public class FileUploadBean {

private MultipartFile file;

public void setFile(MultipartFile file) {
this.file = file;
}

public MultipartFile getFile() {
return file;
}
}
2.FileUploadController.java
package chb.demo.web;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.validation.BindException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

/**
* @author chb
*
*/
public class FileUploadController extends SimpleFormController {

protected ModelAndView onSubmit(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors){

try
{
// cast the bean
FileUploadBean bean = (FileUploadBean) command;

// let's see if there's content there
MultipartFile file = bean.getFile();

if (file == null) {
throw new Exception("上傳失敗:文件為�空");
}
if(file.getSize()>10000000)
{
throw new Exception("上傳失敗:文件大小不能超過10M");
}
//得到文件�名
String filename=file.getOriginalFilename();

if(file.getSize()>0){
try {
SaveFileFromInputStream(file.getInputStream(),"D:/",filename);
} catch (IOException e) {
System.out.println(e.getMessage());
return null;
}
}
else{
throw new Exception("上傳失敗:上傳文件不能為�空");
}
// well, let's do nothing with the bean for now and return:
try {
return super.onSubmit(request, response, command, errors);

} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
return null;
}
}

/**保存文件
* @param stream
* @param path
* @param filename
* @throws IOException
*/
public void SaveFileFromInputStream(InputStream stream,String path,String filename) throws IOException
{
FileOutputStream fs=new FileOutputStream( path + "/"+ filename);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
}

二.配置文件中如下配置:
1.web.xml,利用spring mvc模式,大家應該都很熟悉了
<servlet>
<servlet-name>chb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>chb</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
2.chb-servlet.xml,這里要配置映射,並可以設定最大可上傳文件的大小
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Multi-Action 用來標識method的變數名定義-->
<bean id="methodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<property name="paramName">
<value>action</value>
</property>
<property name="defaultMethodName">
<value>index</value>
</property>
</bean>

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="10000000"/>
</bean>

<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/upload.do">fileUploadController</prop>
</props>
</property>
</bean>

<bean id="fileUploadController" class="chb.demo.web.FileUploadController">
<property name="commandClass" value="chb.demo.web.FileUploadBean"/>
<!-- 上傳失敗時跳轉頁面 -->
<property name="formView" value="/user/err.jsp"/>
<!-- 上傳成功時跳轉頁面 -->
<property name="successView" value="/user/confirmation.jsp"/>
</bean>
</beans>
三.設定jsp頁面
<form id="form1" method="post" action="upload.do" enctype="multipart/form-data">
<tr>
<td width="25%" align="right">上傳文件:</td>
<td><input id="file" type="file" NAME="file" style="width:300px;"></td>
</tr>
<tr align="center" valign="middle">
<td height="60" colspan="2"><input type="submit" ID="BtnOK" value="確認上傳"></td>
</tr>
</form>
ok,現在就可以上傳文件了,挺簡單吧?這里我只列出了基本步驟,至於具體的操作(比如中文問題)可能就需要大家自己再完善完善了.

② springboot多文件上傳

MultipartFile提供了以下方法來獲取上傳文件的信息:

getOriginalFilename,獲取上傳的文件名字;

getBytes,獲取上傳文件內容,轉為位元組數組;

getInputStream,獲取一個InputStream;

isEmpty,文件上傳內容為空,或者根本就沒有文件上傳;

getSize,文件上傳的大小。

transferTo(File dest),保存文件到目標文件系統;

同時上傳多個文件,則使用MultipartFile數組類來接受多個文件上傳:

//多文件上傳 @RequestMapping(value = "/batch/upload", method = RequestMethod.POST)

    @ResponseBody    public String handleFileUpload(HttpServletRequest request){

        List<MultipartFile> files = ((MultipartHttpServletRequest) request)

                .getFiles("file");

        MultipartFile file = null;

        BufferedOutputStream stream = null;

        for (int i = 0; i < files.size(); ++i) {

            file = files.get(i);

            if (!file.isEmpty()) {

                try {

                    byte[] bytes = file.getBytes();

                    stream = new BufferedOutputStream(new FileOutputStream(

                            new File(file.getOriginalFilename())));

                    stream.write(bytes);

                    stream.close();

                } catch (Exception e) {

                    stream = null;

                    return "You failed to upload " + i + " => "                            + e.getMessage();

                }

            } else {

                return "You failed to upload " + i

                        + " because the file was empty.";

            }

        }

        return "upload successful";

    }

可以通過配置application.properties對SpringBoot上傳的文件進行限定默認為如下配置:

spring.servlet.multipart.enabled=true

spring.servlet.multipart.file-size-threshold=0

spring.servlet.multipart.location=

spring.servlet.multipart.max-file-size=1MB

spring.servlet.multipart.max-request-size=10MB

spring.servlet.multipart.resolve-lazily=false

enabled默認為true,既允許附件上傳。

file-size-threshold限定了當上傳文件超過一定長度時,就先寫到臨時文件里。有助於上傳文件不佔用過多的內存,單位是MB或KB,默認0,既不限定閾值。

location指的是臨時文件的存放目錄,如果不設定,則web伺服器提供一個臨時目錄。

max-file-size屬性指定了單個文件的最大長度,默認1MB,max-request-size屬性說明單次HTTP請求上傳的最大長度,默認10MB.

resolve-lazily表示當文件和參數被訪問的時候再被解析成文件。

③ spring mvc中怎麼用commons-fileupload上傳下載文件,好迷茫

我們後台是用hibernate實現的
資料庫對應的實體的類型設為blob類型
用hibernate將二進制流轉為blob類型
Hibernate.createBlob(inputStream)轉為blob

④ Spring mvc+Hibernate 上傳和下載 項目環境 myEplice+SpringMVC+hibernate

資料庫里保存的只是文件在伺服器上的地址,上傳時把文件保存在伺服器上,同時設置保存的目錄,然後把目錄信息保存到資料庫中。

⑤ springboot zip文件上傳無法解壓

解決方法如下:
1、使用xshell登錄伺服器。
2、安裝lrzsz軟體。
3、使用rz-y命令然後進行文件上傳。
4、使用sz命令下載,命令格式如下,之後就可以重新試一下文件上傳後能不能解壓。

⑥ SpringBoot + SFTP 實現文件上傳與下載實戰

SFTP介紹

實戰

1. 相關依賴(基於SpringBoot)

2. 相關配置

3. 將application.properties中配置轉為一個Bean

4. 將上傳下載文件封裝成Service

5. 上傳文件

6. 下載文件

7. 刪除文件

8. 最後

⑦ 用spring mvc 如何實現對excel文件的下載和上傳

我現在也在做這個,我用的是阿帕奇提供的poi

⑧ spring+spring mvc+ hibernate框架里怎麼實現圖片的上傳,下載,展示功能

這個嘛 只和SpringMVC有點關系。 前端提交的文件,由springmvc攔截進行處理。
您可以使用上傳插件。比如網路上傳插件:Web Uploader。
怎麼用的話,官網有Demo。也有API文檔,可以自行查閱。
當然不用插件的話,也可以自己做個簡單的,用Form表單提交到後台,後台對文件進行保存,展示的話直接用<img src='xxx路徑'>。您可以自己組織語言網路搜索一下代碼怎麼寫。
上傳文件實際上就是傳輸一些數據到後台,然後使用java把這些數據保存到硬碟上,前端直接根據路徑來進行訪問。

熱點內容
ig加密語音 發布:2024-10-11 12:19:25 瀏覽:484
釘圖上傳 發布:2024-10-11 12:11:27 瀏覽:476
腳本個 發布:2024-10-11 12:10:43 瀏覽:148
剛性攻絲的編程 發布:2024-10-11 12:10:39 瀏覽:466
怎麼登錄安卓版全民tv 發布:2024-10-11 12:10:33 瀏覽:621
伺服器接收的參數名是什麼 發布:2024-10-11 12:05:38 瀏覽:639
c語言中的goto 發布:2024-10-11 11:57:14 瀏覽:394
小司馬編程 發布:2024-10-11 11:45:03 瀏覽:83
未使用標簽進行編譯 發布:2024-10-11 11:45:00 瀏覽:835
java開發源碼下載 發布:2024-10-11 11:39:22 瀏覽:749