当前位置:  技术问答>java相关

如何从客户端上传图片

    来源: 互联网  发布时间:2015-09-04

    本文导语:  请教高手。如何从客户端上传图片到servlet。并且我要把图片写入数据,我只会从本地以目录下获得图片并且写入数据库,客户端如何来写,servlet如何获得图片的生成的InputStream,和文件长度(插入数据库时需要的) ...

请教高手。如何从客户端上传图片到servlet。并且我要把图片写入数据,我只会从本地以目录下获得图片并且写入数据库,客户端如何来写,servlet如何获得图片的生成的InputStream,和文件长度(插入数据库时需要的)

|
给你一个servlet,太长了,分两段:



import java.io.*; 
import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class UploadTest extends HttpServlet { 
String rootPath= "c:\uploaded\";
String successMessage = "succeed!"; 

static final int MAX_SIZE = 1024*1024*10; 
public void init(ServletConfig config) throws ServletException 

super.init(config); 


public void doGet(HttpServletRequest request,HttpServletResponse response) 
throws ServletException,IOException 

response.setContentType("text/html"); 
PrintWriter out = new PrintWriter (response.getOutputStream()); 
out.println(""); 
out.println("Servlet1"); 
out.println(""); 
out.println(""); 
out.println(""); 
out.close(); 



public void doPost(HttpServletRequest request,HttpServletResponse response) 

ServletOutputStream out=null; 
DataInputStream in=null; 
FileOutputStream fileOut=null; 
try 

/*set content type of response and get handle to output stream in case we are unable to redirect client*/ 
response.setContentType("text/plain"); 
out = response.getOutputStream(); 

catch (IOException e) 

//print error message to standard out 
System.out.println("Error getting output stream."); 
System.out.println("Error description: " + e); 
return; 


try 

String contentType = request.getContentType(); 
//make sure content type is multipart/form-data 
if(contentType != null && contentType.indexOf("multipart/form-data") != -1) 

//open input stream from client to capture upload file 
in = new DataInputStream(request.getInputStream()); 
//get length of content data 
int formDataLength = request.getContentLength(); 
//allocate a byte array to store content data 
byte dataBytes[] = new byte[formDataLength]; 
//read file into byte array 
int bytesRead = 0; 
int totalBytesRead = 0; 
int sizeCheck = 0; 
while (totalBytesRead  MAX_SIZE) 

out.println("Sorry, file is too large to upload."); 
return; 

bytesRead = in.read(dataBytes, totalBytesRead, formDataLength); 
totalBytesRead += bytesRead; 

//create string from byte array for easy manipulation 
String file = new String(dataBytes); 
System.out.println("file========="+file);
//since byte array is stored in string, release memory 
dataBytes = null; 
/*get boundary value (boundary is a unique string that 
separates content data)*/ 
int lastIndex = contentType.lastIndexOf("="); 
String boundary = contentType.substring(lastIndex+1, contentType.length()); 
//get Directory web variable from request 
String directory=""; 
if (file.indexOf("name="Directory"") > 0) 

directory = file.substring(file.indexOf("name="Directory"")); 
//remove carriage return 
directory = directory.substring(directory.indexOf("n")+1); 
//remove carriage return 
directory = directory.substring(directory.indexOf("n")+1); 
//get Directory 
directory = directory.substring(0,directory.indexOf("n")-1); 
/*make sure user didn't select a directory higher in the directory tree*/ 
if (directory.indexOf("..") > 0) 

out.println("Security Error: You can't upload " +"to a directory higher in the directory tree."); 
return; 


//get SuccessPage web variable from request 
String successPage=""; 
if (file.indexOf("name="SuccessPage"") > 0) 

successPage = file.substring(file.indexOf("name="SuccessPage"")); 
//remove carriage return 
successPage = successPage.substring(successPage.indexOf("n")+1); 
//remove carriage return 
successPage = successPage.substring(successPage.indexOf("n")+1); 
//get success page 
successPage = successPage.substring(0,successPage.indexOf("n")-1);

//get OverWrite flag web variable from request 
String overWrite; 
if (file.indexOf("name="OverWrite"") > 0) 

overWrite = file.substring(file.indexOf("name="OverWrite"")); 
//remove carriage return 
overWrite = overWrite.substring(overWrite.indexOf("n")+1); 
//remove carriage return 
overWrite = overWrite.substring(overWrite.indexOf("n")+1); 
overWrite = overWrite.substring(0,overWrite.indexOf("n")-1); 

else 

overWrite = "false"; 


|
www.jspsmart.com 里面有上传组件啊!

|
有一家公司开发了著名的jspsmartupload上传组件,能同时上传四个文件。
网战:www.javajia.com
下载网址:
http://dboy520.51.net/cgi-bin/javajia/software/jspSmartUpload.zip

|
我做过APPLICATION 的,IE 的用
client :



其他的都在服务器端解决,取URL FILENAME 。。。

    
 
 

您可能感兴趣的文章:

  • 客户端如何操作服务器的文件(如查看文件列表,上传,下载)(★)
  • 如何将客户端上传的ACCESS数据库用ODBC连接,即动态ODBC,急盼!
  • 上传文件时,如何在读取文件内容之前中断读取,并返回客户端错误信息?
  • 在red hat linux9 下,我用系统自带的vsftp,如何设定才能在客户端上传文件?
  • 请问我如何能在客户端上传文件到wu-ftp 服务器上?(radhat 7.2)
  • 十万火急!!关于客户端用URL类上传数据流给服务器的servlet的问题
  • 客户端上传文件求解
  • 急速30秒!!!!!客户端选择一个图片上传到服务器端的数据库表中
  • java命名空间javax.print类docflavor的类成员方法:客户端格式化打印数据定义及介绍
  • 客户端程序与容器打交道时客户端用什么程序编写?比如银行添单。
  • php实现socket实现客户端和服务端数据通信源代码
  • 在Linux下开发手机客户端或Pc客户端交互的服务器,需要学哪些知识?
  • windows 7下打开或者关闭telnet客户端/服务端命令方法操作步骤
  • linux端是服务器,客户端连接后,有时并不知道客户端断开,怎么侦测?
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 已和客户端连接建立的socket在客户端CTRL-C后怎么在服务器端捕捉这个错误?
  • Linux c socket编程:简单的客户端(client)和服务端(server)实现
  • 对于用客户端上网的用户(客户端不支持linux)如何在linux下上网?
  • 请问:我发现send函数会使客户端退出, 这怎么办啊,怎样让它不使客户端退出啊,这样我就能重新连上了啊?
  • 客户端访问的时候,怎么样取得客户的IP地址?
  • linux 能ping通客户端ip,但ping不通客户端的域名。
  • socket编程,服务器会用bind()绑定端口,而客户端不用绑定端口就可以调用connect()。那么客户端的端口时系统自己分配的么?是何时绑定的?
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • 关于B/S结构的客户端打印的问题,求教各位 各位大虾,我用servlet和jsp作了一套b/s的系统,现在客户端需要打印,怎样才能实现?帮帮忙啊,小弟再此先谢过了!
  • 求救:j2ee的构架下,可以作为一个客户端不断的往一用vc做的应用程序客户端发数据吗?
  • 请问tcp 客户服务器模型(C/S模型)客户端两个send如果发送间隔太短,服务器端为什么会认为受到的只是一个包
  • socket编程中客户端绑定端口的问题,请兄弟们指点一下
  • jsp如何实现往客户端写数据文件
  • 可以在客户端存储文件吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • IMAP 邮件客户端 Trojitá
  • 点对点文件分享客户端 PeerProject
  • 远程的 Shell 客户端 Rlogin
  • 版本控制客户端 CrossVC
  • XMPP 客户端 Profanity
  • 即时聊天客户端软件 kopote
  • Jabber/XMPP 客户端 jj
  • POP3客户端库 libspopc
  • IRC聊天客户端 Quassel
  • MUD客户端 TinTin++
  • 网络电视客户端 GMLive
  • 远程桌面客户端 rdesktop
  • 基于Web的FTP客户端 OurWebFTP
  • 基于Web的Jabber™客户端 JWChat
  • Applet 是在服务器端执行还是在客户端执行??
  • 客户端——服务端数据传送的几个困惑!
  • Linux 代理 一个客户端来就创建一个连接
  • fedora 校园客户端认证问题
  • 高性能 HBase 客户端 Asynchronous HBase
  • Java的CVS客户端 Gruntspud


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3