熟练使用过smartupload的请进!

DemonLeo 2003-01-23 08:49:29
我在使用smartupload时,文件能够写入sql-server中,但是却只是一部分,比如在下载上传后的文本文件时,文件内容不全,下载上传过的图片时,图片不能完全显示。是不是要更改数据库中字段的数据类型呢,我用的是varbinary类型,我怀疑是不是类的问题,请各位帮忙解决。谢谢。
...全文
33 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
ssttaarr 2003-06-06
  • 打赏
  • 举报
回复
我用jspsmart上传到数据库,txt和DOC文档可正确下载,如为图片或EXCEL则格式不对
xmq 2003-06-04
  • 打赏
  • 举报
回复
和我的问题一样,我想时jspsmart的bug
HelloWorldd 2003-04-06
  • 打赏
  • 举报
回复
mark
Robornet 2003-03-07
  • 打赏
  • 举报
回复
to DemonLeo(郁闷的狮子):

问题解决了吗?我现在面临与你同样的问题! 希望得到您的回复!!!
robornet@sina.com
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
springgwn() 谢谢,但是我是菜鸟,不能够完全读懂你的代码,不过仍旧要感谢你。

斑竹请帮忙啊。。。。
springgwn 2003-01-24
  • 打赏
  • 举报
回复
请问一下,你的实现下传的原理是什么?我是想,从数据库中读出数据先写到服务器下某一指定的文件夹下面,然后,通过连接放到网页上。
springgwn 2003-01-24
  • 打赏
  • 举报
回复
mainpath=application.getRealPath("");
ResultSet rs=executeQuery(sql);
while(rs.next())
{
docu_id=rs.getString(2);
ResultSet rs0=executeQuery("select * from uploads where id='"+docu_id+"'");
while(rs0.next())
{
docu_name=rs0.getString(2);
locate=mainpath+docu_name;
//locate="D:\\"+docu_name;
byte[] content=rs0.getBytes(3);
FileOutputStream fos=new FileOutputStream(locate);
for(int i=0;i<content.length;i++)
{
fos.write(content[i]);
}
fos.close();
}
}
主要代码是这些,刚才还没有写好就发出了。如果locate为注释的那行时就没有问题。
springgwn 2003-01-24
  • 打赏
  • 举报
回复
现在我和你遇到的问题有些相关,还希望我们能相互讨论讨论。我和你的方法要求都一样,我也实现了成功的上传,但是当我从数据库中读数据写到文件中时,如果指定文件的路径是“D:\”+文件名时,它都会成功,而且数据完整,但是如果指定文件的路径是其他时,比如是程序下面的某个文件夹它就提示错误信息,“D:\tomcat\webapps\project\tmpfile\project1批示.txt (系统找不到指定的路径。)”我的代码如下:
String mainpath=application.getRealPath("");
System.out.println(mainpath);
ResultSet rs=executeQuery(sql2);
while(rs.next())
{
docu_id=rs.getString(2);
docu_code=rs.getString(3);
docu_inner_code=rs.getString(4);
docu_sort=rs.getString(5);
refer_date=rs.getString(9).substring(0,10);
ResultSet rs0=executeQuery("select * from uploads where id='"+docu_id+"'");
while(rs0.next())
{
docu_name=rs0.getString(2);
locate=mainpath+lowpath+docu_name;
//locate="D:\\"+docu_name;
System.out.println(locate);
byte[] content=rs0.getBytes(3);
FileOutputStream fos=new FileOutputStream(locate);
for(int i=0;i<content.length;i++)
{
fos.write(content[i]);
}
fos.close();
}
zxl19790710 2003-01-24
  • 打赏
  • 举报
回复
你的问题不是文件的上传问题,而是如何把文件写入数据库中,
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
各位老大,帮帮忙,分数不够可以再加。
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
还有,我不用数据库上传文本文件,文件完整。但是用数据库这种,上传后再下载,文本就不全了,而且有些本来没有的一些信息,信息如下:

-----------------------------7d32af0a0348
Content-Disposition: form-data; name="FILE1"; filename="C:\Documents and Settings\administrator\My Documents\2.txt"
Content-Type: text/plain

然后下面是原来文本的内容,而且不全,少了不少。
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
谢谢,iceman_fsm(猪),你的方法我能够实现。
to zxhong(红透半边天)
我的图片文件大小为82.5k ,如果一定要存到数据库里面呢?
hfprogramer 2003-01-24
  • 打赏
  • 举报
回复
呵呵,可是一定要写到数据库呢?关注!
zxhong 2003-01-24
  • 打赏
  • 举报
回复
不妨试试楼上说的方法

你的图片有多大?
iceman_fsm 2003-01-24
  • 打赏
  • 举报
回复
我做上传的时候,通常不把图片啊文件啊之类的上传到数据库中,而是上传到服务器上的某个特定的文件夹里,然后将文件的路径存入数据库中,使用的时候通过程序读路径就可以了。
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
image 类型也不行,图片显示不完全,急。。。。。。。。。。
还请 zxhong(红透半边天) 帮忙!
DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
问题没有得到解决。。。。 :(
iceman09() 给我的显示数据库中图片的代码也不能够正确显示图片(没有图片),再说一遍,我用SAMPLE4上传的,用SAMPLE7下载的,我想利用iceman09() 说的代码显示数据库中的内容,但是仍然失败了,所以,我想如果问题明天仍旧不能够得到解决,只有提前结帐了。。。。

:(
郁闷!
iceman09 2003-01-24
  • 打赏
  • 举报
回复
showImage.jsp
<%@ page language="java" import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page contentType="text/html;charset=gb2312"%>

<%
try {
String id=request.getParameter("id");
..//此处联数据库
String cmd="select image from news WHERE id ="+id;
PreparedStatement sql=con.prepareStatement(cmd);
ResultSet rs = sql.executeQuery();
rs.next();
InputStream in = rs.getBinaryStream("image");
response.reset();
response.setContentType("image/jpeg");
byte[] b = new byte[1024];
int len;
while((len=in.read(b)) >0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close();
}
catch(Exception e)
{ out.println(e);}

%>

使用:
页面显示图片<img src="showImage.jsp?id=<%=id%>">

DemonLeo 2003-01-24
  • 打赏
  • 举报
回复
例子7

<%@ page language="java" import="java.sql.*,com.jspsmart.upload.*"%><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" /><%


// Connect to the database
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://server:1433;DatabaseName=test","sa","");

// SQL Request
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM TFILES where id=3");

// if the resultset is not null
if (rs.next()){
String FileName=rs.getString("FileName");
// Initialization
mySmartUpload.initialize(pageContext);
mySmartUpload.setTotalMaxFileSize(200000);
// Download field
mySmartUpload.downloadField(rs,"FILE","application/x-msdownload", "2.txt");

// mySmartUpload.fieldToFile(rs,"FILE","c:\\temp\\sample7.txt");

}

rs.close();
stmt.close();
con.close();

%>

以上是我的代码,全部如上,上传行,下载行,就是文件下载后变了,请各位帮忙,我怀疑是smartupload的类的问题,我是菜鸟,瞎猜的,还在看文档,请多关照!
dou1204 2003-01-24
  • 打赏
  • 举报
回复
mainpath=application.getRealPath("");

打出来看看是什么再说
加载更多回复(11)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧