当前位置:首页 » 文件管理 » java文件上传servlet

java文件上传servlet

发布时间: 2022-05-01 22:44:10

java 上传文件 问题

不用 下载相应jar包 引入就可以了 import 你懂得

Ⅱ java使用ServletFileUpload上传文件,ServletFileUpload.parseRequest(request)报错。

操作不允许,/trs/apache-tomcat-7.0.37/yy/kjcg/uploadtmp/upload__bf6b7e9_14520c5a8b9__8000_00000000.tmp不能创建。查查tomcat所属用户的/trs/apache-tomcat-7.0.37/yy/kjcg/uploadtmp目录写权限

Ⅲ javaweb中实现文件上传完整代码(servlet里面dopost的代码)

structs 的 jsp 页面文件上传表单,只要项目是SSH的就行了
jsp:
<s:form action="add.do" id="inputForm" enctype="multipart/form-data" >
<td >
<s:file name="upload" cssClass="{required:true}" contenteditable="false"></s:file>
<span class="field_tipinfo">请选择文件</span>
</td>
</s:form

action:
private File upload;//上传的文件
....
public String add() throws Exception {
//保存文件
save(upload);
}
...

Ⅳ java servlet不用插件上传文件:

import java.net.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SaveFileServlet extends HttpServlet
{
FileWriter savefile;
String filename = null;
String value = null;
/**
* Handles a POST request
*/
public void doPost(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
response.setContentType( "text/html ");
//FileWriter savefile;
try {

// Verify the content type

String ct = request.getContentType();
if (!ct.startsWith( "multipart/form-data "))
throw new RuntimeException
( "Invalid content type ");

// Get the boundary string

int p = ct.indexOf( "boundary= ");
if (p == -1)
throw new RuntimeException
( "No boundary string found ");

p += "boundary= ".length();
String boundary = "-- " + ct.substring(p);
String finalBoundary = boundary + "-- ";

// We 'll parse the multipart/form-data
// with a finite state machine

// Define names for the parser states

final int INIT = 0;
final int READING_HEADERS = 1;
final int READING_DATA = 2;

int state = INIT;

// Read and extract the fields

BufferedReader in = request.getReader();
main: for (;;) {
String line = in.readLine();
if (line == null)
break;

switch (state) {

// State 0: Ignoring everything before
// the first boundary

case INIT:
if (line.startsWith(finalBoundary))
break main;
if (line.startsWith(boundary)) {
state = READING_HEADERS;
filename = " ";
value = " ";
}
break;

// State 1: Parsing the headers

case READING_HEADERS:
if (line.length() == 0)
state = READING_DATA;
else {

// Get the field name

p = line.indexOf( "filename=\ " ");
if (p == -1)
break;
p += "filename=\ " ".length();

// ... up to the closing quote.

int q = line.indexOf( "\ " ", p);
if (q == -1)
break;
filename = line.substring(p, q);
filename= "./config/medet/applications/DefaultWebApp/ "+filename.substring(filename.lastIndexOf( "\\ ")+1);
savefile=new FileWriter(filename);
value = " ";
}
break;

// State 2: Reading the data

case READING_DATA:
if (line.startsWith(finalBoundary)) {
savefile.write(value);
savefile.close();
break main;
}
if (line.startsWith(boundary)) {
state = READING_HEADERS;
}
else {
if (value.length() > 0)
value += "\n ";
value += line;
}
break;
}

}
// Report the incident number back to the client
String[] text = {
" <HTML> ",
" <HEAD> ",
" <meta http-equiv= 'Content-Type ' content= 'text/html; charset=gb2312 '> ",
" <TITLE> 文件上传成功 </TITLE> ",
" </HEAD> ",
" <BODY> ",
" <CENTER> ",
" <H3> 文件上传成功! </H3> ",
" </CENTER> "
};
for (int i = 0; i < text.length; i++)
out.println(text[i]);
out.println(filename);
out.println( " </BODY> ");
out.println( " </HTML> ");
}

catch (Exception e) {
// Write the exception message
out.println( " <H3> Error: </H3> ");
out.println( " <PRE> ");
out.println(e.getMessage());
out.println( " </PRE> ");
}
finally {
out.flush();
}
}
}
希望帮到你

Ⅳ java jsp 怎么上传图片到servlet

jsp:
<form action="up.do" method="post" enctype="multipart/form-data" id="upform"> 文件:<input type="file" name="file" id="file"/> <input type="button" id="btn" value="上传"/> </form>

SERVLET:

FileItemFactory fileItemFactory = new DiskFileItemFactory(); ServletFileUpload fileUpload = new ServletFileUpload(fileItemFactory); //设置 中文 编码集 fileUpload.setHeaderEncoding("UTF-8"); try { List<FileItem> fileItems= fileUpload.parseRequest(request); for (FileItem fi : fileItems) { if(fi.isFormField()){ } } } for (FileItem fileItem : fileItems) { if(fileItem.isFormField()){ }else{ //文件名 String filename = fileItem.getName(); //文件名处理 if(filename.indexOf('\\') != -1){ filename = filename.substring(filename.lastIndexOf('\\')+1); } System.out.println(filename); if(filename == null || filename.equals("")){ request.setAttribute("msg", "没有指定上传文件"); request.getRequestDispatcher("index.jsp").forward(request, response); //验证码错误 就退出 return; } //path 生成文件夹 String fpath = "F:\\\\中软高科\\\\小组\\\\5组日报"+UpFileUtil.getMonthadnDate(); File file = new File(fpath); if(!file.exists()){ file.mkdir(); } //文件全路径 fpath = fpath+"\\\\"+filename;// System.out.println(filename+"--->"+fpath+"--->"+UpFileUtil.getTime()); //写出文件到 服务器磁盘 InputStream in = fileItem.getInputStream();//request.getInputStream(); OutputStream out = new FileOutputStream(fpath); byte[] buff = new byte[1024*10]; while(in.read(buff) != -1){ out.write(buff); } out.flush(); out.close(); in.close(); //保存文件信息到数据库 new UpFileDao().updFile("{call file_add(?,?,?)}",new String[]{filename,fpath,UpFileUtil.getTime()}); filename = null; fpath = null; file = null; request.setAttribute("msg", "上传成功"); request.getRequestDispatcher("index.jsp").forward(request, response); } } } catch (Exception e) { e.printStackTrace(); }

Ⅵ java用jspmartupload上传文件的时候,怎么在目标servlet中获得上传文件的路径

//新建一个Smartupload对象
SmartUpload su=new SmartUpload();
//上传初始化
su.initialize(pageContext);
//设定上传限度
//1.限定每个上传文件的最大长度
//su.setMaxFileSize(100000);
//2.限制总上传数据的长度。
//su.setTotalMaxFileSize(20000);
//3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
//su.setAllowFilesList("doc,text");
//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件或没有扩展名的文件
//su.setDeniedDilesList("exe,bat,jsp,html,htm,,");
//上传文件
su.upload();
//将上传文件全部保存到指定目录
int count=su.save("/upload");
out.println(count+"个上传文件成功!<br>");
//利用Request对象获取参数之值
out.println("test="+su.getRequest().getParameter("test")+"<br><br>");
//逐一提取上传文件信息,同时可保存文件。
for(int i=0;i<su.getFiles().getCount();i++)
{

com.jspsmart.upload.File file=su.getFiles().getFile(i);

//若文件不存在则继续

if(file.isMissing())

continue;

//显示当前文件信息

out.println("<table border=1>");

out.println("<tr><td>表单项名(FiledName)</td><td>"+file.getFieldName()+"</tr></tr>");

out.println("<tr><td>文件长度(Size)</td><td>"+file.getSize()+"</td><td>");

out.println("<tr><td>文件名(FileName)</td><td>"+file.getFileName()+"</tr></tr>");

out.println("<tr><td>文件扩展名(FiledExt)</td><td>"+file.getFileExt()+"</tr></tr>");

out.println("<tr><td>文件全名(FiledPathName)</td><td>"+file.getFilePathName()+"</tr></tr>");

out.println("</table><br>");

//将文件另存

//file.saveAs("/upload/"+myFile.getFileName());

//另存到以web应用程序的根目录为文件根目录的目录下

//file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL);

//另存到操作系统的根目录为文件根目录的目录下

//file.safeAs("c://temp//"+myFile.getFileName(),su.SAVE_PHYSICAL);
}

上面就是了。。。。祝你好运哈!

Ⅶ Java中如何在表单中上传文件,并且把表单中的信息传到servlet中 本人很急在线等

<input type="file"/>

Ⅷ servlet传文件到servlet

代码完全可用我已经实验成功,这个可很好的servlet之间传递数据

两个servlet传值你可以把下面的代码修改一下
简单示例的源码
passobject.java
首先,我们需要在两台WEB主机上分别建立对passobject的定义,在两台主机上的定义应该是完全一样,这样的类定义和我们通常使用并没有什么不同。只是这样的类必须实现序列化,也就是要实现Serializable:
packagetest;
importjava.io.*;
{
StringPassValue1;
StringPassValue2;
publicvoidsetNewPassObject()
{PassValue1="yzysynew";
PassValue2="new";
}
publicvoidsetOldPassObject()
{PassValue1="yzysyold";
}
}
test.java
在其中的一台web主机上建立。除去加注释的那几行,这完全是一个通常意义上的用于显示的servlet,不过那几行的内容看上去也许会有点让你眼花缭乱。这几行将数据对象传输到了另一台主机的test2中,并接收经过test2处理的数据对象。对于这里所涉及的一些不太常用的API,我们将会在最后一并说明。
packagetest;
importjava.sql.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjavax.servlet.jsp.*;
importjavax.servlet.jsp.tagext.*;
importjava.io.*;
importjava.net.*;
{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsIOException,ServletException
{PassObjectpassobject=newPassObject();
passobject.setNewPassObject();
PrintWriterout=response.getWriter();
out.println(passobject.PassValue1);
out.println(passobject.PassValue2);
//创建一个新的URL实例url
URLurl=newURL("http://141.56.16.8/examples/servlet/test.Test2");
//根据url建立连接
URLConnectioncon=url.openConnection();
//设置该连接可写
con.setDoOutput(true);
//禁用cache
con.setUseCaches(false);
//取出输出流
OutputStreamouts=con.getOutputStream();
//将该输出流转换为对象输出流
ObjectOutputStreamobjout=newObjectOutputStream(outs);
//将要传输的对象写入该对象输出流中
objout.writeObject(passobject);
//取得返回的输入流
InputStreamin=con.getInputStream();
//将该输入流定义为对象输入流
ObjectInputStreamobjStream;
objStream=newObjectInputStream(in);
//按指定类的格式读取输入流的内容
try{
passobject=(PassObject)objStream.readObject();
out.println(passobject.PassValue1);
out.println(passobject.PassValue2);
}
catch(java.lang.ClassNotFoundExceptionysy)
{
out.println("fail");
}
}
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsIOException,ServletException
{
doGet(request,response);
}
}
test2.java
在其中的另一台web主机上建立,用来接收test发送的数据对象,并对其进行处理后返回到test。
packagetest;
importjava.sql.*;
importjava.util.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjavax.servlet.jsp.*;
importjavax.servlet.jsp.tagext.*;
importjava.io.*;
importjava.net.*;
{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsIOException,ServletException
{//封装用于返回的对象输出流
ObjectOutputStreamout=newObjectOutputStream(response.getOutputStream());
//封装用于接收的对象输入流
ObjectInputStreamin=newObjectInputStream(request.getInputStream());
PassObjectpassobject=newPassObject();
//按指定类的格式读取对象输入流中的内容
try{
passobject=(PassObject)in.readObject();
}
catch(java.lang.ClassNotFoundExceptionysy)
{
}
//对接受到的数据对象进行处理
passobject.setOldPassObject();
//将处理后的数据对象返回到对象输出流中
out.writeObject(passobject);
}
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsIOException,ServletException
{
doGet(request,response);
}
}
程序中涉及的部分API的说明
java.net.URL
URL类表示了一个统一资源路径。这样的资源可能是一个文件或目录,也可能是更为复杂的诸如数据库的查询或是搜索引擎。
在我们的程序中使用了URL的一种构造函数:
URL(Stringspec)
直接使用字符串作为构造函数的参数,这实际上是URL的众多构造函数中最为简单的一种。
此外,我们还用到了URL的openConnection()方法:
()
throwsIOException
该方法返回了一个URLConnection对象。每次调用该方法时会开启一个到指定URL的新的连接。
这里需要注意的是,调用该方法的结果是建立了一个连接,这与通常的页面跳转完全是两回事。在更多的情况下,这里仅仅是建立了一个连接的通路,而并没有实现任何其它的操作。
java.net.URLConnection
这是一个抽象类,是所有反映application和一个URL之前的通信的类的超类。这个类的实例可以用来对一个URL表示的资源进行读写。
在我们的程序中我们使用了这个类的如下方法:
getInputStream
()
throwsIOException
返回从这个连接读取的一个输入流
getOutputStream
()
throwsIOException
返回一个用于写入这个连接的输出流
setDoOutput
publicvoidsetDoOutput(booleandooutput)
设置该连接是否可以写入
setUseCaches
publicvoidsetUseCaches(booleanusecaches)
设置该连接是否使用cache
java.io.OutputStream
这是一个抽象类,是所有反映一个二进制输出流的类的超类。一个这样的输出流可以对二进制数据进行输出或发送。
java.io.ObjectOutputStream
该类用来向一个OutputStream写入java的对象。这个对象可以使用ObjectInputStream进行读取或再造。
只有实现java.io.Serializable接口的对象可以写入该数据流中。
在我们的程序中还使用了该类的writeObject()方法:
publicfinalvoidwriteObject(Objectobj)
throwsIOException
将指定的对象写入ObjectOutputStream。
java.io.InputStream
这是一个抽象类,是所有反映一个二进制输入流的类的超类。
java.io.ObjectInputStream
一个ObjectInputStream对一个使用ObjectOutputStream写入的对象进行解析。
在我们的程序中使用了该类的readObject()方法:
publicfinalObjectreadObject()
throwsOptionalDataException,
ClassNotFoundException,
IOException
从一个ObjectInputStream中读取一个对象。
程序执行的结果
如果一切正常,访问test.Test你应该可以看到这样的结果:
yzysynew
new
yzysyold
new
其中yzysynew,new是对象原来的内容,而yzysyold,new所反映的那个对象已经是传送到test2后经test2处理过的了。

Ⅸ Java用servlet上传文件,已经上传到服务器里但是MyEclipse已建目录中不显示已经上传到文件

你这个是项目文件夹,上传是到了网站里的文件夹,你看下项目发布到哪个tomcat上,去那找对应的文件夹,上传文件在那

Ⅹ java如何实现文件上传和下载的功能

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jspsmart.upload.*;
import net.sf.json.JSONObject;
import action.StudentAction;
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean result=true;
SmartUpload mySmartUpload=new SmartUpload();
mySmartUpload.initialize(this.getServletConfig(), request,response);
mySmartUpload.setTotalMaxFileSize(50*1024*1024);//大小限制
mySmartUpload.setAllowedFilesList("doc,docx");//后缀名限制
try {
mySmartUpload.upload();
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
myFile.saveAs("/file/"+1+".doc");//保存目录
} catch (SmartUploadException e) {
e.printStackTrace();result=false;
}
//*****************************//
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
PrintWriter out = response.getWriter();
out.print(result);
out.flush();
out.close();
}
}

//我这是ajax方式的,不想这样,把//**********************//以下部分修改就行了
//需要SmartUpload组件,去网上下个就行了,也有介绍的

热点内容
安卓手机如何使用印象笔记剪影 发布:2024-11-16 12:32:18 浏览:177
电脑服务器在哪里输入 发布:2024-11-16 12:27:22 浏览:263
魅族16th如何设置热点密码 发布:2024-11-16 12:22:15 浏览:396
浙江密码文件柜哪里有 发布:2024-11-16 12:20:34 浏览:953
c语言逆序输出整数 发布:2024-11-16 12:20:31 浏览:797
蓝桥杯c语言 发布:2024-11-16 12:20:24 浏览:398
安卓阵营哪个手机外放好 发布:2024-11-16 12:16:02 浏览:651
国外云服务器免费 发布:2024-11-16 12:13:49 浏览:554
苏宁茅台脚本 发布:2024-11-16 12:12:18 浏览:252
访问乞丐 发布:2024-11-16 12:07:19 浏览:436