社区
Web 开发
帖子详情
十万火急!!!!各位大虾们,请问如何在JSP中上载图片?????
douthy
2002-03-08 09:43:47
如何将非服务器上的图片上传到服务器,小弟我急用!!!
...全文
63
5
打赏
收藏
十万火急!!!!各位大虾们,请问如何在JSP中上载图片?????
如何将非服务器上的图片上传到服务器,小弟我急用!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
douthy
2002-03-09
打赏
举报
回复
谢谢你啊!
不过我现在还有个问题,按你的方法可以上传了,可是为什么在我这个程序中又不可以呢?
<%@ page contentType="text/html;charset=GB2312" import="java.util.*,up.upload" %>
<%
addnews=request.getParameter("addnews");
if(addnews!=null){
type=(request.getParameter("type"));
title=(request.getParameter("title")).replace('%','~');
author=(request.getParameter("author"));
contents=(request.getParameter("content")).replace('%','~');
image_1=(request.getParameter("image_1"));
java.util.StringTokenizer st=new java.util.StringTokenizer(contents,"\n");
String s="";
while(st.hasMoreTokens()){
s+=st.nextToken()+"<br>";
}
String image="/image/";
upload up=new upload();
up.init(application);
up.setUploadDirectory(image);
String filename=up.uploadFile(request);
int result=sys.setInsert(request,tableName,type,title,author,filename,image_2,image_3,s);
%>
为什么这样取得filename为空呢?
douthy
2002-03-08
打赏
举报
回复
谢谢你啊!!!!
怎么给分啊
yanchang
2002-03-08
打赏
举报
回复
/******************************* 例 子 *************************************
file.html
<form enctype="multipart/form-data" method=post action =up.jsp>
请上传您的文件:<br>
<input type=file name = myfile><br>
<input type=submit value="提 交">
</form>
up.jsp
<%@ page import = "pub.upload" %>
<%
String Dir = "/upload/";
upload up = new upload();
up.init(application);
up.setUploadDirectory(Dir);
String filename = up.uploadFile(request);
if (filename != null)
{
out.print("文件"+filename+"已经成功上传到"+Dir);
}
%>
********************************** 结 束 ***********************************/
分啊!~~~~~~~~
yanchang
2002-03-08
打赏
举报
回复
用smartupload
www.jspsmart.com
给你个例子
/** * 功能:这是一个文件上载类,把一个指定的文件从客户端上传到服务器指定的目录
* 参数:String newline 一个新行
* String uploadDirectory 目标文件夹
* String ContentType 测试request的类型
* String CharacterEncoding 指定的编码格式
*
* 方法:void init(ServletContext app) 参数指定为application,使成员变量application
* 为当前页面的application对象
* String getFileName(String s) 返回上传的文件名
* setUploadDirectory(String s) 设置目标文件夹
* setContentType(String s) 设置request类型
* setCharacterEncoding(String s) 设置编码格式
* String uploadFile(HttpServletRequest req) 初始化環境,返回文件名
* String uploadFile(ServletInputStream servletinputstream) 重载上一涵数,写入文件。返回文件名
*
* 编写: 诗剑书生
* 时间: 2000-12-25
*/
//package pub;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class upload
{
private static String newline = "\n";
private String uploadDirectory = ".";
private String ContentType = "";
private String CharacterEncoding = "";
private ServletContext application;
public final void init(ServletContext app)
throws ServletException
{
application = app;
}
private String getFileName(String s)
{
int i = s.lastIndexOf("\\");
if(i < 0 || i >= s.length() - 1)
{
i = s.lastIndexOf("/");
if(i < 0 || i >= s.length() - 1) return s;
}
return s.substring(i + 1);
}
public void setUploadDirectory(String s)
{
if (isVirtual(s))
{
uploadDirectory = application.getRealPath(s);
}
else
{
uploadDirectory = s;
}
File testdir = new File(uploadDirectory);
if (!testdir.exists())
{
throw new IllegalArgumentException(String.valueOf((new StringBuffer("Directory '")).append(s).append("' not found (1040).")));
}
}
public void setContentType(String s)
{
ContentType = s;
int j;
if((j = ContentType.indexOf("boundary=")) != -1)
{
ContentType = ContentType.substring(j + 9);
ContentType = "--" + ContentType;
}
}
public void setCharacterEncoding(String s)
{
CharacterEncoding = s;
}
public String uploadFile(HttpServletRequest req)
throws ServletException,IOException
{
setCharacterEncoding(req.getCharacterEncoding());
setContentType(req.getContentType());
String filename = uploadFile(req.getInputStream());
return filename;
}
public String uploadFile(ServletInputStream servletinputstream)
throws ServletException,IOException
{
String s5 = null;
String filename = null;
byte Linebyte[] = new byte[4096];
byte outLinebyte[] = new byte[4096];
int ai[] = new int[1];
int ai1[] = new int[1];
String line;
while((line = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null)
{
int i = line.indexOf("filename=");
if(i >= 0)
{
line = line.substring(i + 10);
if((i = line.indexOf("\"")) > 0)
line = line.substring(0, i);
break;
}
}
filename = line;
if(filename != null && !filename.equals("\""))
{
filename = getFileName(filename);
for (int i=0;i<filename.length();i++)
{
if((int)filename.charAt(i)==32)
{
filename=filename.replace(filename.charAt(i),'_');
}
}
String sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
if(sContentType.indexOf("Content-Type") >= 0)
readLine(Linebyte, ai, servletinputstream, CharacterEncoding);
//File(String parent, String child)
//Creates a new File instance from a parent pathname string
//and a child pathname string.
File file = new File(uploadDirectory, filename);
//FileOutputStream(File file)
//Creates a file output stream to write to the file represented
//by the specified File object.
FileOutputStream fileoutputstream = new FileOutputStream(file);
while((sContentType = readLine(Linebyte, ai, servletinputstream, CharacterEncoding)) != null)
{
if(sContentType.indexOf(ContentType) == 0 && Linebyte[0] == 45)
break;
if(s5 != null)
{
//write(byte[] b, int off, int len)
//Writes len bytes from the specified byte array starting
//at offset off to this file output stream.
fileoutputstream.write(outLinebyte, 0, ai1[0]);
fileoutputstream.flush();
}
s5 = readLine(outLinebyte, ai1, servletinputstream, CharacterEncoding);
if(s5 == null || s5.indexOf(ContentType) == 0 && outLinebyte[0] == 45)
break;
fileoutputstream.write(Linebyte, 0, ai[0]);
fileoutputstream.flush();
}
byte byte0;
if(newline.length() == 1)
byte0 = 2;
else
byte0 = 1;
if(s5 != null && outLinebyte[0] != 45 && ai1[0] > newline.length() * byte0)
fileoutputstream.write(outLinebyte, 0, ai1[0] - newline.length() * byte0);
if(sContentType != null && Linebyte[0] != 45 && ai[0] > newline.length() * byte0)
fileoutputstream.write(Linebyte, 0, ai[0] - newline.length() * byte0);
fileoutputstream.close();
}
return filename;
}
private boolean isVirtual(String s)
{
if(application.getRealPath(s) != null)
{
java.io.File file = new java.io.File(application.getRealPath(s));
return file.exists();
}
else
{
return false;
}
}
private String readLine(byte Linebyte[], int ai[], ServletInputStream servletinputstream, String CharacterEncoding)
{
try
{
//readLine(byte[] buffer, int offset, int length)
//Reads a line from the POST data.
ai[0] = servletinputstream.readLine(Linebyte, 0, Linebyte.length);
if(ai[0] == -1)
return null;
}
catch(IOException _ex)
{
return null;
}
try
{
if(CharacterEncoding == null)
{
//用缺省的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length)
return new String(Linebyte, 0, ai[0]);
}
else
{
//用给定的编码方式把给定的byte数组转换为字符串
//String(byte[] bytes, int offset, int length, String enc)
return new String(Linebyte, 0, ai[0], CharacterEncoding);
}
}
catch(Exception _ex)
yanchang
2002-03-08
打赏
举报
回复
点管理啊!
别望了给分
:)
哈哈
我要把struts 做的程序运行在iis5+tomcat5上,为什么一运行到
jsp
页面时,一运行这个.do的页面时
本文描述了将使用Struts框架开发的应用部署到IIS5和Tomcat5环境
中
遇到的问题,特别是访问.do文件时出现资源不可用的错误。
2021杨雪洋高考成绩查询,
十万火急
!多省已开通2020高考成绩查询通道(附各省最新查询网址)...
本文介绍了2020年各省市高考成绩的公布时间及查询通道,提醒考生和家长密切关注查分和志愿填报的重要节点,强调传统报考方式的局限性并推荐了现代查询方式。
jsp
引入css文件不生效_假如 Web 当初不支持动态化
本文探讨了 Web 动态化技术的发展。Web 天生具备动态化基础能力,而移动端则受限。文章介绍了从原生 WebAssembly 到基于 JavaScript 的动态更新,容器概念形成,HTML、JavaScript、CSS 构成容器标准,还提及浏览器加载网络资源、同步异步模式切换、数据驱动及动态业务组件与坑位交融等内容。
java如何左网页,哪位高手有实现在网页上像csdn左边的目录树样式的的代码啊()...
这篇文章介绍了一个JavaWeb开发者如何通过
JSP
和数据库操作,实现类似CSDN网站左侧动态目录树的代码示例。包括数据库表设计、JDBC连接以及如何动态加载数据,适合初学者和寻求CSDN目录树结构实现的人参考。
致JAVA初学者+如何下手学JAVA
本文提供了JAVA学习的方法指导,强调目标明确与自主解决问题的重要性,并讨论了工具选择、认证价值及避免贪大求全的学习态度。
Web 开发
81,111
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章