请问这段程序怎么写? 我想实现图片中的功能,其它的都能实现,但是要实现图片上传功能,我就懵了,请问该怎样写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不会框架~servlet中写了一段package cn.ac.learn.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.swing.JOptionPane;import cn.ac.learn.service.usermanage;import cn.ac.learn.service.impl.usermanageImpl;public class usermanege extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; public usermanege() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8;"); String username=request.getParameter("username"); String password=request.getParameter("password"); int permission=Integer.valueOf(request.getParameter("Permission")); String name=request.getParameter("name"); String sexy=request.getParameter("sexy"); String photo=request.getParameter("photo"); if(username==""||password==""||name==""||sexy=="") { request.setAttribute("flag", "请将信息填写完整!"); RequestDispatcher requestDis = request.getRequestDispatcher("admin/userAdd.jsp"); requestDis.forward(request, response); } else { try { usermanage user=new usermanageImpl(); int count=user.addUser(username, password, permission, name, photo, sexy); if(count==1) { int choose=JOptionPane.showConfirmDialog(null, "添加成功,是否继续上传","消息框",JOptionPane.YES_NO_OPTION); if(choose==0) { response.sendRedirect("admin/userAdd.jsp"); } else { response.sendRedirect("admin/right_default.jsp"); } } else if(count==0) { request.setAttribute("flag", "用户名已经存在!"); RequestDispatcher requestDis = request.getRequestDispatcher("admin/userAdd.jsp"); requestDis.forward(request, response); } }catch (Exception e) { e.printStackTrace(); } } } public void init() throws ServletException { // Put your code here }} java文件上传 Struts 2中实现文件上传Struts2的上传组件是一个拦截器在Struts2中,用于获得和设置java.io.File对象(Struts2将文件上传到临时路径,并使用java.io.File打开这个临时文件)的方法是getUpload和setUpload。获得和设置文件名的方法是getUploadFileName和setUploadFileName,获得和设置上传文件内容类型的方法是getUploadContentType和setUploadContentType。 怎么在servlet里面把swing的对话框拿来用了?汗。 图片上传一般可以用struts的组件实现,具体的代码上google/baidu搜一下应该很多的 不用框架?建议用框架,struts都有实现了 不知道楼主是否用过struts,那就用jsp+servlet搞定JSP:<form action="uploadServlet" enctype="multipart/form-data" method="post"> <input type="file" name="myfile">.....</form>Servelet:doPost()方法中:InputStream is = request.getInputStream();//上传图片,可以把图片保存在服务器的文件系统下,然后将图片的路径保存在数据库中。FileOutputStream fos = new FileOutputStream("temp/images/myPic.jpg");byte[]buf = new byte[1024];int len = 0;while((len = is.read(buf))!=-1){ fos.write(buf,0,len);}fos.close();is.close();然后保存该文件的路径,就不说了。 Java的文件上传需要两个包,一个是commons-fileupload-1.2.1.jar,一个是commons-io-1.3.2.jar,版本的数字可能不一样,用这两个包测试通过。JAR在Apache的官方网站下的一个开源项目commons下,链接为:http://commons.apache.org/可以找到FileUpload和IO,下载即可。这是个网上的一个例子程序,希望你能解决:http://www.163jsp.com/download/sourcecode/commons-fileupload-1.2.1-sample.zip 页面:<form action="uploadServlet" enctype="multipart/form-data" method="post"> <input type="file" name="file"> action中:InputStream is = request.getInputStream(); //上传图片,可以把图片保存在服务器的文件系统下也可以自定义保存路径,图片名称可以自己该。 FileOutputStream fos = new FileOutputStream("temp/images/myPic.jpg"); byte[]buf = new byte[1024]; int len = 0; while((len = is.read(buf))!=-1){ fos.write(buf,0,len); } fos.close(); is.close(); 你可以使用类似jspsmartupload之类的上传组件,使用非常简单。自己根据数据流来实现文件上传会非常麻烦。 js能弹警告,使用 alert('警告信息');也能弹确定取消,使用 confirm('确定要这么做吗?') 选确定返回true,选取消返回false还能弹输入,使用啥给忘啦。你的警告信息放在servlet里面,前台用户是看不到的,你要把结果放回页面,由页面来显示噢。 学习!!有没有asp.net上传路径自定义的啊 面试题:显式调用构造函数时不能引用实例字段 Js,select赋值问题. cpu是怎么得到内存数据 请教高手,创建线程sleep,是否会影响被创建线程的执行? maven execution配置问题 各位帮我看看这类转换错误 闯荡江湖时间不长,就被一个菜鸟问题群追不舍 我下载的JBoss4.0.1是否包含有TOMCAT的WEB包容器? welcomeAction.do的.do是什么意思? mybaits 3.2 <where>不能删除and? spring问题!求助高手 java socket通讯问题
servlet中写了一段package cn.ac.learn.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;import cn.ac.learn.service.usermanage;
import cn.ac.learn.service.impl.usermanageImpl;public class usermanege extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L; public usermanege() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8;");
String username=request.getParameter("username");
String password=request.getParameter("password");
int permission=Integer.valueOf(request.getParameter("Permission"));
String name=request.getParameter("name");
String sexy=request.getParameter("sexy");
String photo=request.getParameter("photo");
if(username==""||password==""||name==""||sexy=="")
{
request.setAttribute("flag", "请将信息填写完整!");
RequestDispatcher requestDis = request.getRequestDispatcher("admin/userAdd.jsp");
requestDis.forward(request, response);
}
else
{
try
{
usermanage user=new usermanageImpl();
int count=user.addUser(username, password, permission, name, photo, sexy);
if(count==1)
{
int choose=JOptionPane.showConfirmDialog(null, "添加成功,是否继续上传","消息框",JOptionPane.YES_NO_OPTION);
if(choose==0)
{
response.sendRedirect("admin/userAdd.jsp");
}
else
{
response.sendRedirect("admin/right_default.jsp");
}
}
else if(count==0)
{
request.setAttribute("flag", "用户名已经存在!");
RequestDispatcher requestDis = request.getRequestDispatcher("admin/userAdd.jsp");
requestDis.forward(request, response);
}
}catch (Exception e) {
e.printStackTrace();
}
}
} public void init() throws ServletException {
// Put your code here
}}
Struts2的上传组件是一个拦截器
在Struts2中,用于获得和设置java.io.File对象(Struts2将文件上传到临时路径,并使用java.io.File打开这个临时文件)的方法是getUpload和setUpload。获得和设置文件名的方法是getUploadFileName和setUploadFileName,获得和设置上传文件内容类型的方法是getUploadContentType和setUploadContentType。
JSP:
<form action="uploadServlet" enctype="multipart/form-data" method="post">
<input type="file" name="myfile">
.....
</form>Servelet:
doPost()方法中:
InputStream is = request.getInputStream();
//上传图片,可以把图片保存在服务器的文件系统下,然后将图片的路径保存在数据库中。
FileOutputStream fos = new FileOutputStream("temp/images/myPic.jpg");
byte[]buf = new byte[1024];
int len = 0;
while((len = is.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
is.close();然后保存该文件的路径,就不说了。
需要两个包,
一个是commons-fileupload-1.2.1.jar,
一个是commons-io-1.3.2.jar,
版本的数字可能不一样,用这两个包测试通过。
JAR在Apache的官方网站下的一个开源项目commons下,
链接为:http://commons.apache.org/
可以找到FileUpload和IO,下载即可。
这是个网上的一个例子程序,希望你能解决:
http://www.163jsp.com/download/sourcecode/commons-fileupload-1.2.1-sample.zip
<form action="uploadServlet" enctype="multipart/form-data" method="post">
<input type="file" name="file"> action中:
InputStream is = request.getInputStream();
//上传图片,可以把图片保存在服务器的文件系统下也可以自定义保存路径,图片名称可以自己该。
FileOutputStream fos = new FileOutputStream("temp/images/myPic.jpg");
byte[]buf = new byte[1024];
int len = 0;
while((len = is.read(buf))!=-1){
fos.write(buf,0,len);
}
fos.close();
is.close();
js能弹警告,使用 alert('警告信息');
也能弹确定取消,使用 confirm('确定要这么做吗?') 选确定返回true,选取消返回false
还能弹输入,使用啥给忘啦。
你的警告信息放在servlet里面,前台用户是看不到的,你要把结果放回页面,由页面来显示噢。