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进行实例化。