fileupload過濾
A. asp.net FileUpload 只選擇文件夾
沒有這個功能,實現不到,你可以用插件形式,自帶的無法實現,可以選擇flash做一個
B. 如何實現asp.net中FileUpload文件類型過濾功能
Asp.net中的FileUpload不提供File Filter功能,而且也不能使用OpenFileDialog。那就只有通過JavaScript實現 <mce:script type=text/javascript<!-- function openfile() {try {var fd = new ActiveXObject(MSComDlg.CommonDialog); fd.Filter = 上傳文件 (*.jpg;*.jpeg;*.gif)|*.jpg;*.jpeg;*.gif; fd.FilterIndex = 2; // 必須設置MaxFileSize. 否則出錯 fd.MaxFileSize = 128; fd.ShowOpen(); document.getElementById(txtFilePath).value = fd.Filename;}catch (e) { document.getElementById(txtFileName).value = ;}} // --</mce:script調用:<asp:TextBox ID=txtFilePath runat=server Width=300px / 以上可以實現web中上傳過濾。
C. 嚴重: 啟動過濾器struts2時發生異常
在struts2載入抄的襲時候會載入一個叫fileupload的攔截器。
所以你最初加的包裡面必須有fileupload的jar包。可以在apache的官網上commons里下載。
這是2.1.6里才出現的問題。所以它才會報錯無法載入xml文件。
D. AsyncFileUpload或FileUpload控制項將打開對話框的文件過濾
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "*.txt|*.txt";
ofd.RestoreDirectory = true;
E. 請問struts2 過濾器不限制文件 上傳類型、大小和擴展名 怎麼設置
額 你這個不是攔截器嗎,不限制那你不配置攔截器不就可以了嗎,如果真需要配置攔截器,那就需要設置好支持的擴展名了。
F. js過濾掉不要的字元串 ajaxFileUpload
var a="<pre style="word-wrap: break-word; white-space: pre-wrap;">{"Msg":"/images/upload/slt/20150319094459.jpg","data":null,"state":0,"url":null}</pre>"
意思是只要{ }之間的內容。
那就正則替換 a=a.replace(/<\/*?pre[^<>]*>/,'')
沒經過測試,按照這個思路測試測試就可以了。
G. web-xml文件配置過濾器就報404或者直接進不了網頁
載入你配置的類出錯了吧
找不到類回的說答
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 30 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.(Class.java:2389)
H. java 獲取表單file 內容然後傳到java類中可在java類中顯示 幫幫忙 寫詳細一點啊 新手求助
package com.servlet;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.PropertyResourceBundle;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.util.Streams;
import com..impl.AddReportDaoImpl;
import com..impl.ReadProperties;
//添加模板
public class ReportFileUploadServlet extends javax.servlet.http.HttpServlet
implements javax.servlet.Servlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private ServletConfig config;
File tmpDir = null;// 初始化上傳文件的臨時存放目錄
File saveDir = null;// 初始化上傳文件後的保存目錄
// 調用報表名(供導出時執行)
private String reportTName = null;
// 報表名稱(用戶自寫)
private String reportName = null;
// 報表描述(用戶自寫)
private String reportInfo = null;
// 報表導出保存路徑
private String savePath = null;
// 模板ID
private String rid = "";
//報表路徑
private String reportPath = "";
private AddReportDaoImpl addReportDaoImpl = new AddReportDaoImpl();
public ReportFileUploadServlet() {
super();
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
try {
if (ServletFileUpload.isMultipartContent(request)) {
DiskFileItemFactory dff = new DiskFileItemFactory();// 創建該對象
dff.setRepository(tmpDir);// 指定上傳文件的臨時目錄
dff.setSizeThreshold(1024000);// 指定在內存中緩存數據大小,單位為byte
ServletFileUpload sfu = new ServletFileUpload(dff);// 創建該對象
sfu.setFileSizeMax(5000000);// 指定單個上傳文件的最大尺寸
sfu.setSizeMax(10000000);// 指定一次上傳多個文件的 總尺寸
FileItemIterator fii = sfu.getItemIterator(request);// 解析request
// 請求,並返回FileItemIterator集合
while (fii.hasNext()) {
FileItemStream fis = fii.next();// 從集合中獲得一個文件流
String name = new String(fis.getFieldName().getBytes(
"ISO-8859-1"), "utf-8");
InputStream stream = fis.openStream();
if (!fis.isFormField() && fis.getName().length() > 0) {// 過濾掉表單中非文件域
String fileName = fis.getName();// 獲得上傳文件的文件名
BufferedInputStream in = new BufferedInputStream(fis
.openStream());// 獲得文件輸入流
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(saveDir + "\\"
+ fileName)));// 獲得文件輸出流
Streams.(in, out, true);// 開始把文件寫到你指定的上傳文件夾
} else {
if (name.equals("reportName")) {
reportTName = Streams.asString(stream, "utf-8");
}
if (name.equals("reportInfo")) {
reportInfo = Streams.asString(stream, "utf-8");
}
if (name.equals("path")) {
savePath = Streams.asString(stream, "utf-8");
}
if (name.equals("rid")) {
rid = Streams.asString(stream, "utf-8");
}
if(name.equals("reportPath")){
reportPath = Streams.asString(stream, "utf-8");
}
}
}
String showInfo = "";
String callInfo = addReportDaoImpl.addReport(reportTName,
reportName, reportInfo, savePath, rid,reportPath);
if (callInfo.equals("true")) {
showInfo = "alert('操作成功!');";
} else if (callInfo.equals("repeat")) {
showInfo = "alert('" + reportTName + "模板已添加,不允許重復添加!');";
} else if (callInfo.equals("flase")) {
showInfo = "alert('添加失敗,請確定模板信息是否正確!');";
}
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out
.print("<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>");
out.print("<script>");
out.print(showInfo);
out.print("window.top.location.href='/ReportTimer';");
out.print("</script>");
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out
.print("<meta http-equiv='Content-Type' content='text/html; charset=GBK'>");
out.print("<script>");
out.print("alert('操作失敗!');");
out.print("window.top.location.href='/ReportTimer';");
out.print("</script>");
out.flush();
out.close();
}
}
public void init(ServletConfig sc) throws ServletException {
String projectPath = "";
ReadProperties rp = new ReadProperties();
projectPath = rp.reportPath();
/*
* 對上傳文件夾和臨時文件夾進行初始化
*
*/
// // 得到項目路徑
// String releasePath = ParameterTransition.class.getResource("/")
// .getPath();
// // 得到webapps所在索引位置
// int index = releasePath.indexOf("webapps");
// // 截取項目路徑
// String CutOut = releasePath.substring(1, index);
// // 拼接項目路徑得到所需項目路徑
// projectPath = CutOut
// + "webapps\\WebReport\\WEB-INF\\reportlets\\";
super.init();
config = sc;
String tmpPath = "d:\\tmpdir";
String savePath = projectPath;
tmpDir = new File(tmpPath);
saveDir = new File(savePath);
if (!tmpDir.isDirectory())
tmpDir.mkdir();
if (!saveDir.isDirectory())
saveDir.mkdir();
}
}
I. 如何把fileupload 選擇的excel 文件上傳到oracle 資料庫
將Excel導入Oracle中
1.打開excel。
2.將Excel另存為.csv格式
3.創建sql*loader控制文件test.ctl,內容如下:
Load data
Infile 'c:\test.csv'
insert Into table test Fields terminated by ','(column1,column2,column3,column4,column5)
需要將數據文件拷貝到對應位置
4.到資料庫中建立對應的測試表test
create table test (
column1 Varchar2(10),
column2 Varchar2(10),
column3 Varchar2(10),
column4 Varchar2(10),
column5 Varchar2(10)
)
5.執行導入命令
Sqlldr userid = system/manager control='C:\test.ctl'
導入成功!
附:
Sqlldr的函數關鍵字說明:
Userid --oracle用戶名 userid = username/password
Control --控制文件名稱 control = 『e:\insert.ctl』
Log –-日誌文件名稱 log = 『e:\insert.log』
Bad --損壞文件名稱
Data --data file name
Discard --discard file name
Discardmax --number of discards to allow(默認全部)
Skip --導入時跳過的記錄行數(默認0)
Load --導入時導入的記錄行數(默認全部)
Errors --允許錯誤的記錄行數(默認50)
ctl文件內容說明:
Load data
Infile 『e:\test.csv』 --數據源文件名稱
Append|insert|replace --append在表後追加,insert插入空表,replace替代原有內容
Into table test --要導入的資料庫表名稱
[when id = id_memo] --過濾條件
Fields terminated by X』09』 --欄位分隔符
(id,name,telphone) --欄位名稱列表
附:
方法一:
1、在本地創建一個Access資料庫,將Excel數據先導入到Access。可直接導入點擊滑鼠右鍵,選擇導入,文件類型選擇要導入的Excel文件,也可通過創建宏用TransferSpreadsheet函數實現。
2、在本地創建ODBC,鏈接oracle資料庫。將oracle中需要導入數據的表以鏈接表的方式在本地Access中創建(千萬不要使用導入表)。
3、在Access資料庫中創建插入查詢將導入好的Excel數據導入到oracle中。
方法二:
先把Excel另存為.csv格式文件,如test.csv,再編寫一個insert.ctl
用sqlldr進行導入!
insert.ctl內容如下:
load data --1、控制文件標識
infile 'test.csv' --2、要輸入的數據文件名為test.csv
append into table table_name --3、向表table_name中追加記錄
fields terminated by ',' --4、欄位終止於',',是一個逗號
(field1,
field2,
field3,
...
fieldn)-----定義列
列對應順序
注意括弧中field排列順序要與csv文件中相對應
然後就可以執行如下命令:
sqlldr user/password control=insert.ctl
例子:
首先我先建了一個表
SQL> create table biao
2 (usernamevarchar2(10),
3 date1 varchar2(20),
4 date2 varchar2(20),
5 date3 varchar2(20)
6 );
然後寫了6.txt文件,存在c:/目錄下
內容:
姓 名 工作時間 入黨時間 增加時間
200109 20040919 200409
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20050331 20050331
200109 20041220 20041220
寫得ctl文件如下,存在c:/目錄下
LOAD DATA
INFILE '6.txt'
INTO TABLE BIAO
fields terminated by x'0d' trailing nullcols
(
USERNAME,
DATE1,
DATE2,
DATE3
)
再 命令提示符中寫的
sqlldr uerid=system/lllll control =input.txt
ctl文件為(ctl的文件名必須為表名):
Load data
infile 'excelName.txt'
append into table tableName(你的表名)
fields terminated by X'09'
(A,B)
注意:
你先將你的文本文件的數據放入到excel中,然後將它已「製表符分隔」的形式保存
excelName.txt就為你報保存的文本文件
再將ctl、txt文件放入C盤根目錄
最後在dos下輸入:sqlldr 用戶名/用戶密碼@sid control=tableName
J. 在JSP中,創建ServletFileUpload對象的方法是
C
原因沒啥好講的,因為Apache的Commons FileUpload組件就是這么設計的,ServletFileUpload可以實例化,但構造函數中需要傳遞一個FileItemFactory介面類型的對象(所以A, D不對)。
但是由於FileItemFactory是介面,不能用new實例化(所以B不對),需要用它的實現類DiskFileItemFactory進行實例化。