Example #1
0
    /**
     * 上传文件的主处理方法
     * @param HttpContext
     * @param string
     * @param  string[]
     *@param int
     * @return Hashtable
     */
    public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size)
    {
        // pathbase = pathbase + "/";
        uploadpath = cxt.Server.MapPath(pathbase);//获取文件上传路径
        var newsID = WebParmKit.GetQuery("NewsID", "");

        try
        {
            uploadFile   = cxt.Request.Files[0];
            originalName = uploadFile.FileName;

            //目录创建
            createFolder();

            //格式验证
            if (checkType(filetype))
            {
                //不允许的文件类型
                state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b";
            }
            //大小验证
            if (checkSize(size))
            {
                //文件大小超出网站限制
                state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236";
            }
            //保存图片
            if (state == "SUCCESS")
            {
                filename = NameFormater.Format(cxt.Request["fileNameFormat"], originalName);
                var ss       = cxt.Request["fileNameFormat"];
                var testname = filename;
                var ai       = 1;
                while (File.Exists(uploadpath + testname))
                {
                    testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename);
                }
                uploadFile.SaveAs(uploadpath + testname);
                string str = cxt.Request.Url.GetLeftPart(UriPartial.Authority);
                str += cxt.Request.ApplicationPath;

                URL = str + pathbase.Replace("~", "") + testname;
                //   Logger.Debug("Uploader.cs URL:" + URL);
            }
        }
        catch (Exception)
        {
            // 未知错误
            state = "\u672a\u77e5\u9519\u8bef";
            URL   = "";
        }
        return(getUploadInfo());
    }
Example #2
0
    /**
     * 上传文件的主处理方法
     * @param HttpContext
     * @param string
     * @param  string[]
     *@param int
     * @return Hashtable
     */
    public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size)
    {
        pathbase   = pathbase + "/";
        uploadpath = WebHelper.MapPath(pathbase);//获取文件上传路径

        try
        {
            uploadFile   = cxt.Request.Form.Files[0];
            originalName = uploadFile.FileName;

            //目录创建
            createFolder();

            //格式验证
            if (checkType(filetype))
            {
                //不允许的文件类型
                state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b";
            }
            //大小验证
            if (checkSize(size))
            {
                //文件大小超出网站限制
                state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236";
            }
            //保存图片
            if (state == "SUCCESS")
            {
                filename = NameFormater.Format(cxt.Request.Query["fileNameFormat"], originalName);
                var testname = filename;
                var ai       = 1;
                while (File.Exists(uploadpath + testname))
                {
                    testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename);
                }
                FileStream fs = new FileStream(uploadpath + testname, FileMode.Create);
                uploadFile.CopyTo(fs);
                URL = pathbase + testname;
            }
        }
        catch (Exception)
        {
            // 未知错误
            state = "\u672a\u77e5\u9519\u8bef";
            URL   = "";
        }
        return(getUploadInfo());
    }
Example #3
0
    /**
     * 上传文件的主处理方法
     * @param HttpContext
     * @param string
     * @param  string[]
     *@param int
     * @return Hashtable
     */
    public Hashtable upFile(HttpContext cxt, string pathbase, string[] filetype, int size)
    {
        pathbase   = pathbase + "/";
        uploadpath = cxt.Server.MapPath(pathbase);//获取文件上传路径

        try
        {
            uploadFile   = cxt.Request.Files[0];
            originalName = uploadFile.FileName;

            //目录创建
            createFolder();

            //格式验证
            if (checkType(filetype))
            {
                //不允许的文件类型
                state = "\u4e0d\u5141\u8bb8\u7684\u6587\u4ef6\u7c7b\u578b";
            }
            //大小验证
            if (checkSize(size))
            {
                //文件大小超出网站限制
                state = "\u6587\u4ef6\u5927\u5c0f\u8d85\u51fa\u7f51\u7ad9\u9650\u5236";
            }
            //保存图片
            if (state == "SUCCESS")
            {
                string basestr = string.Empty;
                filename = NameFormater.Format(cxt.Request["fileNameFormat"], originalName);
                var testname = filename;
                var ai       = 1;
                while (File.Exists(uploadpath + testname))
                {
                    testname = Path.GetFileNameWithoutExtension(filename) + "_" + ai++ + Path.GetExtension(filename);
                }

                int iBufferSize = 1024000;
                //byte[] buffer = new byte[iBufferSize];
                //var binaryReader = new BinaryReader(uploadFile.InputStream);
                long lFileSize = uploadFile.ContentLength;
                int  file_size = (int)Math.Ceiling((double)(lFileSize / iBufferSize));//文件大小(M)
                int  rest      = (int)(lFileSize % iBufferSize);
                //int iTempCount = 0;

                //while (iTempCount <iTotalCount)
                //{
                //    binaryReader.Read(buffer, 0, iBufferSize);
                //    //将字节转换成字符
                //    basestr += Convert.ToBase64String(buffer);
                //    iTempCount++;
                //}
                //byte[] buffer_rest = new byte[rest-1];
                //binaryReader.Read(buffer_rest, 0, rest-1);
                //basestr += Convert.ToBase64String(buffer_rest);
                var binaryReader1 = new BinaryReader(uploadFile.InputStream);
                if (file_size < 4)
                {
                    byte[] bytes      = binaryReader1.ReadBytes(uploadFile.ContentLength);
                    string bytes64Str = Convert.ToBase64String(bytes);
                    URL = upFileWeb.upfilebyte(bytes64Str, Path.GetExtension(filename));
                }

                else
                {
                    //Web.ff.UpFileWeb upFileWeb1 = new Web.ff.UpFileWeb();
                    Web.ServiceUpFile.UpFileWeb ws = new Web.ServiceUpFile.UpFileWeb();
                    ws.Timeout = -1;
                    //byte[] bytes = binaryReader1.ReadBytes(uploadFile.ContentLength);

                    filename = getGUID() + Path.GetExtension(filename);
                    for (int ii = 0; ii <= file_size; ii++)
                    {
                        if (ii == file_size)
                        {
                            byte[] buffer_rest = new byte[rest];
                            binaryReader1.Read(buffer_rest, 0, rest);
                            URL = ws.upfile(buffer_rest, filename);
                        }
                        else
                        {
                            byte[] buffer_rest = new byte[1024000];
                            binaryReader1.Read(buffer_rest, 0, 1024000);
                            URL = ws.upfile(buffer_rest, filename);
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            // 未知错误
            string message = ex.Message;
            state = "\u672a\u77e5\u9519\u8bef";
            URL   = "";
        }
        return(getUploadInfo());
    }