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

十万火急!!!!各位大虾们,请问如何在JSP中上载图片?????

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

    本文导语:  如何将非服务器上的图片上传到服务器,小弟我急用!!! | 用smartupload www.jspsmart.com 给你个例子 /**     *  功能:这是一个文件上载类,把一个指定的文件从客户端上传到服务器指定的...

如何将非服务器上的图片上传到服务器,小弟我急用!!!

|
用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 = s.length() - 1)
        {
            i = s.lastIndexOf("/");
            if(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= 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)
        

    
 
 

您可能感兴趣的文章:

  • 超级新手菜鸟请问各位大虾!
  • 请问各位大虾,什么地方有Jsp学习资料?
  • 请问各位大虾,如何把一个String赋值给一个Char[]??
  • 请问各位unix大虾,哪有免费的unix下载?
  • 请问大虾们,如何学习linux?
  • 请问大虾,如何将静态库文件 .a 进行反编译? 在线等
  • 请问各位大虾哪有MontaVista Linux下载?急用
  • 大虾,请问谁有正则表达式的资料?谢谢!
  • 请问各位大虾:“在什么地方能下栽到JDBC?,
  • 急!请问大虾,如何书写UNXI下的MakeFile以编译C(调用了某些库)程序?
  • 各位大虾,请问:如何在使linux挂XP下的NTFS分区!!
  • 请问在LINUX下有那些比较好的CAD软件,请大虾推荐!
  • 请问各位大虾学哪种Unix好
  • 请问各位大虾,用gtk编程如何让图片缩放,旋转?
  • 请问那位大虾有关于EJB(包括Servlet,jsp)的项目例子 100分奉送呀!
  • 各位大虾,请问哪里有JDK API的chm格式的help下载,感激不禁!
  • 请问大虾:
  • 各位大虾,请问在linux 8.0下如何编程
  • 菜鸟请问各位大虾,如何看到RPM中的原文件内容
  • 大虾请问:在windows平台下监控linux桌面的软件
  • 请问各位大虾,在Applet中如何缩放图片?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,小弟有一事不明,请大虾赐教!
  • 在solaris下如何卸载wu-ftpd???????????????????????谢谢大虾!!!!!!!!!!
  • 请大虾们谈谈linux和unix的异同吧
  • 请大虾,详细介绍一下JavaBean的写法,和调用过程!
  • 对LDAP有研究的大虾请进,见者有分
  • 各位大虾,一个初学者该怎样开始学习java?
  • 哪位大虾知道weblogic与websphere的差别?
  • 大虾救命!APACHE没有理睬JSP?!!!
  • 大虾救命啊!!!50分!!!
  • 哪位大虾指点一下哪里有weblogic下载啊???
  • 初学者求救!!哪位大虾给点源代码?
  • 在下初学java,请各位大虾推荐几个java学习网站吧!
  • 请各位大虾介绍几个好一点的linux论坛,谢谢!
  • 大虾救命,dos下面怎么输入中文?
  • session里面可以放整型数吗?大虾请指教!!!
  • 各位大虾!如果用jbuilder做一个五子棋?
  • 请有经验的大虾指点一下!!!!!!、、、、、、、100分!!
  • 网页上的饼壮图和柱状图是怎么实现的?请大虾帮忙!
  • 没有软区能装linux么??谢谢大虾指教!!
  • SOS紧急状况,需要大虾们帮助!!


  • 站内导航:


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

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

    浙ICP备11055608号-3