1. 程式人生 > >Struts2檔案上傳無法取得檔名及檔案型別問題的解決

Struts2檔案上傳無法取得檔名及檔案型別問題的解決

     最近寫一網站,用struts2加Common-FileUpload實現照片上傳,在頁面表單裡寫成這樣:<s:file name="uploadPhoto"/>,然後在action中用以下三個屬性:

    private File uploadPhoto;//封裝上傳檔案
    private String uploadFileName;//設定上傳檔案的檔名
    private String uploadContentType;//上傳檔案的型別

來接收檔案的資訊。測試的過程中,發現uploadPhoto屬性可以接收到檔案內容,然而uploadFileName和uploadContentType這兩個屬性接不到檔名和檔案型別資訊,值始終為null。

    在網上搜了很多資料,費了好大勁也沒找到解決方法。是不是我的struts2出了問題呢,我乾脆試試書上的原始碼看行不行,於是拿出李剛老師的《Struts2 權威指南》,用書的示例程式碼一試,沒有問題。這就奇怪了,把那示例程式碼跟我的程式碼以及配置檔案進行多次比較,沒有發現實質性差別。於是一點一點改變著試吧,把示例程式碼的頁面跟我的action組合起來,一執行,沒有問題,說明問題出在頁面上。用我的頁面,把表單的程式碼換成示例程式碼上的,也沒有問題。我的表單跟示例程式碼的表單差別也只剩下我的是name="uploadPhoto",示例程式碼上是name="upload",於是將我的也改成“upload”(action裡的uploadPhoto也改成upload),一試,成功了!

    我用的主要元件版本:commons-io-1.3.2,commons-fileupload-1.2.1,struts2-core-2.1.6。

    總結一下,目前版本的struts2檔案上傳表單裡的<s:file name="upload"/>的name必須為"upload"。有時候一些自己不太注意的地方可能就會出現問題。

相關推薦

Struts2檔案無法取得檔名檔案型別問題的解決

     最近寫一網站,用struts2加Common-FileUpload實現照片上傳,在頁面表單裡寫成這樣:<s:file name="uploadPhoto"/>,然後在action中用以下三個屬性:     private File uploadPhoto

js+jstl+servlet實現檔案、列表展示檔案下載

檔案上傳 1.upload.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert

檔案踩坑記檔案清理原理探究

  最近搞一個檔案上傳功能,由於檔案太大,或者說其中包含了比較多的內容,需要大量邏輯處理。為了優化使用者體驗,自然想到使用非同步來做這件事。也就是說,使用者上傳完檔案後,我就開啟另一個執行緒來處理具體邏輯,主執行緒就直接返回使用者成功資訊了。這樣就顯得非常快了,要看具體結果可以到結果頁進行檢視。看起來很棒!

檔案漏洞—副檔名繞過

預備知識 利用上傳漏洞可以直接得到webshell,危害非常高導致該漏洞的原因在於程式碼作者沒有對訪客提交的資料進行檢驗或者過濾不嚴,可以直接提交修改過的資料繞過副檔名的檢驗。 實驗目的 通過修改檔名,繞過黑名單,上傳一句話木馬,拿到webshell 實驗工具 一句

javaEE Struts2檔案,Action中接收檔案型別引數

CustomerAction.java(Action物件,接收檔案型別引數): package cn.xxx.web.action; import java.io.File; import com.opensymphony.xwork2.ActionSupport;

struts2檔案後找不到檔案檔案下載的問題

最近做一個關於檔案上傳下載的專案的時候,碰到幾個問題: 1.檔案上傳時<s:file name="upload" label="上傳論文" ></s:file>,此name屬性

前端檔案一整套流程(相容IE8,解決 input標籤必須主動點選等問題)

1.基本思路 在谷歌下以<input type=’file’/>為基本的條件,並且使他隱藏,通過點選提交按鈕被動觸發上傳檔案的事件,這裡不需要用到表單提交的相關問題,在js方面,使用formData,通過獲取<input type=”file”>標籤的files屬性,來獲

SpringCloud+Feign環境下檔案與form-data同時存在的解決辦法

最近專案轉型使用SpringCloud框架下的微服務架構,各微服務之間使用Feign進行呼叫。期間,發現若被呼叫方法涉及到檔案上傳且僅存在單個檔案時,一切正常,程式碼片段如下: 1 @RequestMapping(value = "/if/****/add", method = Request

檔案-阿里雲OSS-儲存檔案

JS上傳檔案到阿里雲OSS OSS支援流式寫入和讀出。特別適合視訊等大檔案的邊寫邊讀業務場景。 注意在OSS的控制檯:跨域管理中設定允許的方法 <script> var client = new OSS

HDFS操作實驗(hdfs檔案、使用JavaAPI判斷檔案存在,檔案合併)

    此部落格為博主學習總結,內容為博主完成本週大資料課程的實驗內容。實驗內容分為兩部分。    1. 在分散式檔案系統中建立檔案並用shell指令檢視;    2. 利用Java API程式設計實現判斷檔案是否存在和合並兩個檔案的內容成一個檔案。    感謝廈門大學資料庫

AFNetworking 檔案Data,File圖片,檔案

這段時間需要整理一些東西, 先備註在這裡, 將花時間把這個點整理一下。 使用AFNetworking上傳圖片,(可一次上傳多張圖片,包含不同型別png, jpeg) 使用AFNetworking上傳視訊     AFHTTPRequestOperationManager *manager = [AFHTT

SpringCloud+Feign環境下檔案與form-data同時存在的解決辦法(2)

書接上文。 上文中描述瞭如何在 SpringCloud+Feign環境下上傳檔案與form-data同時存在的解決辦法,實踐證明基本可行,但卻會引入其他問題。 主要導致的後果是: 1. 無法與普通Feign方法並存 2. 機率性(不確定條件下)導致其他form-data型別引數無法識別,無法正常工作,

檔案,使用js對檔案進行校驗,包括檔案單個大小,格式,總的檔案大小,檔案是否為空等

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = reque

springmvc Excel檔案,使用ajaxSubmit方法進行檔案,使用彈出層彈出一個框(jquery layer),點選進行下載

效果: 彈出層使用的是jquery外掛layer  外掛下載地址http://download.csdn.net/detail/rendeyishi/8048139 因為我是使用的是jquery裡面的ajaxSubmit進行檔案上傳 所以這個jquery.form.js必

apache檔案元件+oracle+SWFupload實現檔案

  來韓國三個月了,最近做的專案中韓國人要求上傳的檔案儲存到資料庫,讓人難以接受的是在上傳選擇檔案的時候他們要求能夠同時實現多檔案選擇並上傳,多選這個問題我以前沒做過,google一下,發現有很多辦法,最終發現了SWFupload元件,於是問題解決,現貼出程式碼以供以後備用和

springmvc和servlet下的檔案和下載(存檔案目錄和存資料庫Blob兩種方式)

專案中涉及了檔案的上傳和下載,以前在struts2下做過,今天又用springmvc做了一遍,發現springmvc封裝的特別好,基本不用幾行程式碼就完成了,下面把程式碼貼出來: FileUpAndDown.jsp <%@ page language="java"

git建立本地倉庫並程式碼到gitHub 常見問題解決(更新)

一、對於新建repository: 本地專案資料夾 git bash here; git init 並複製專案程式碼到本地倉庫; git add . git commit -m“first” 連線程式碼至GitHub:在GitHub新建repositor

【input】檔案控制元件隱藏和前端型別限制

1. 如何隱藏檔案上傳控制元件     使用 CSS3 的 opacity 屬性 設定 透明度為 0(隱藏),詳情參看  說明     並使用絕對定位 position:absolute    其父標籤 使用相對定位 position:relative <a href

PHP的單個檔案、多個單檔案、多檔案

單檔案上傳 upload1.php <!doctype html> <html lang="en"> <head> <meta charset="U

Laravel -- 檔案管理自定義目錄檔名

開發之路,羊腸九曲,荊棘密佈,幸得高人指點,前輩填坑,一路謹小慎微,終得工程圓滿;其間填坑之經驗,開路之歷程,皆為精華,不可棄之;記錄於此,以便事後回顧,亦想於有相關開發疑惑之同學做參考之用,文中如若有錯,懇請雅正,不勝感激。 Laravel檔案系統 Laravel