A. java实现图片上传至服务器并显示,如何做
给你段代码,是用来在ie上显示图片的(servlet):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
File file = new File(getServletContext().getRealPath("/")+"out"+"/"+id+".gif");
response.setCharacterEncoding("gb2312");
response.setContentType("doc");
response.setHeader("Content-Disposition", "attachment; filename=" + new String(file.getName().getBytes("gb2312"),"iso8859-1"));
System.out.println(new String(file.getName().getBytes("gb2312"),"gb2312"));
OutputStream output = null;
FileInputStream fis = null;
try
{
output = response.getOutputStream();
fis = new FileInputStream(file);
byte[] b = new byte[1024];
int i = 0;
while((i = fis.read(b))!=-1)
{
output.write(b, 0, i);
}
output.write(b, 0, b.length);
output.flush();
response.flushBuffer();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(fis != null)
{
fis.close();
fis = null;
}
if(output != null)
{
output.close();
output = null;
}
}
}
这个程序的功能是根据传入的文件名(id),来为浏览器返回图片流,显示在<img>标签里
标签的格式写成如下:
<img src="http://localhost:8080/app/preview?id=111 "/><br/>
显示的是111.gif这个图片
你上面的问题:
1.我觉得你的第二个办法是对的,我们也是这样做的,需要的是把数据库的记录id号传进servlet,然后读取这条记录中的路径信息,生成流以后返回就是了
关于上传文件的问题,我记得java中应该专门有个负责文件上传的类,你调用就行了,上传后存储在指定的目录里,以实体文件的形式存放
你可以参考这个:
http://blog.csdn.net/arielxp/archive/2004/09/28/119592.aspx
回复:
1.是的,在response中写入流就行了
2.是发到servlet中的,我们一般都是写成servlet,短小精悍,使用起来方便,struts应该也可以,只是我没有试过,恩,你理解的很对
B. 怎么把本地图片变成有URL的网络图片
第一种
第一种方法就是,如果您自身是开网店的,一般网店自带图片空间地址,把图片上传到网店图片空间去,拿网店来举例,请看图示。
第二种
第二种方法就是,如果你自个有网站,这个就好办多了,老手略过,主要是新手;首先使用FTP把图(图片的全名称为a.jpg)上传到相应目录文件夹,这里假设A文件夹为网站根目录下的图片文件夹;把a.jpg上传到A文p件夹;然后图片网址就很容易出来了就可以看到效果图了。
第三种
第三种方法就是打开你的QQ空间-相册管理-点击上传-把你想要的图片上传到QQ空间里去;然后,打开图片-鼠标右键-弹出对话框-点击最下面的属性打开-再次弹出对话框-就看到图片地址了-直接复制就可以了。
第四种
注册个账号(如果注册账号,请移步)
注册后,打开个人主页,就可以看到上面有个栏目-我的相册-方法和QQ相册一样
一般在网上看到的图片,点击开来,如果出现一个框,空白的,只有这一幅图,那么这个网址就是URL(即网络地址)
2、如果这张图片没有链接让你点开,那么在图片上点右键,最下面选择图片属性,会有地址(URL)的显示。
3、如果是本地图片想要网络地址,只好自己做一个了。
找到一个相册或者博客,把你的图片传上去,然后查看你问的问题,下面就会主动显示图片,这时候的图片已经弄到网上了,你打开自己问得这个问题,重复我说的第一二步操作就可以得到网络地址,全部弄完得到你想要的网络地址后你就可以把问题删除了,对得到的网址是不影响的。
也可以把图片发到邮箱里面,打开邮箱里的图片,点击右键,选择属性,会有地址(URL)的显示,那个就是网络地址了。