<%@ WebHandler Language="C#" Class="UploadHandler" %>

using System;
using System.Web;
using System.Data;
using System.Collections.Generic;
using System.Linq;
//using BizDataAccess;
using System.IO;
using System.Net;
using System.Web.Services;
using System.Text;

using DataLinkMesWork;
using System.Data.SqlClient;

public class UploadHandler : IHttpHandler
{
    private static string connectionString = System.Configuration.ConfigurationManager.AppSettings.GetValues("ConnectionString")[0].ToString();

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        string filePath = "../webpage/file";
        filePath = HttpContext.Current.Server.MapPath(filePath);
        string MachineNum = HttpContext.Current.Request["MachineNum"];
        string result = "";
        bool isOK;
        try
        {
            Guid guid = Guid.NewGuid();
            string uid = guid.ToString().Replace("-", "").ToUpper();
            HttpFileCollection files = context.Request.Files;
            if (files.Count > 0)
            {
                for (int i = 0; i < files.Count; i++)
                {
                    HttpPostedFile hpFile = files[0];
                    if (hpFile.ContentLength > 0)
                    {
                        string fileName = System.IO.Path.GetFileName(hpFile.FileName);
                        string suffix = fileName.Split(new Char[] { '.' })[1];
                        string Name = fileName.Split(new Char[] { '.' })[0];
                        string sql = "insert into PDM_机床总图_文件列表 values(" + MachineNum + ",'" + uid + "','" + Name + "','" + suffix + "'," + '1' + ")";
                        isOK = DataLinkMesWork.DataLink.ExecuteNonQuery(sql);
                        

                            
                                                  //--业务代码  1：
                        //-- 1 ：发货管理_附件
                        //-- 2 ：合同信息管理_履约保证金_履约保函
                        //-- 3 ：合同管理_文件路径
                        //-- 4 ：PDM_机床总图_文件列表
                        //-- 5 ：采购管理_采购发票_附件
                        //-- 6 ：车间采购管理_发票结算申请单
                        //-- 7 ：设备管理_设备监控_图片
                        //-- 8 ：车间生产管理_质检管理
                        //-- 9 ：人员管理_图片
                        //--10  tableName  
                            
                        if (isOK)
                        {
                            filePath = filePath + "/" + uid + "." + suffix;
                            hpFile.SaveAs(filePath);
                            result = "[{ \"result\":\"1\"}]";
                        }
                        else
                        {
                            result = "[{ \"result\":\"0\"}]";
                        }

                        try
                        {
                                                        //增加文件保存到数据库的功能
                            byte[]bytes = new byte[files[0].InputStream.Length];
                            files[0].InputStream.Read(bytes, 0, bytes.Length);
                            string procedureName = "_文件存储_高精_增加";
                            string errorMessage;
                            SqlParameter []thisParms = new SqlParameter[5];
                            thisParms[0] = new SqlParameter("@业务代码", 4);
                            thisParms[1] = new SqlParameter("@文件标识", uid);
                            thisParms[2] = new SqlParameter("@文件名称", Name);
                            thisParms[3] = new SqlParameter("@文件后缀", suffix);
                            thisParms[4] = new SqlParameter("@文件内容", bytes);
                            DataLinkMesWork.DataLink.ExecuteStoredProcedure(procedureName, ref thisParms, out errorMessage);

                            if(DataLinkMesWork.DataLink.isBakup=="1")
                            {
                                DataLinkMesWork.DataLink.ExecuteNonQuery_Bakup(sql);
                                DataLinkMesWork.DataLink.ExecuteStoredProcedure_Bakup(procedureName, ref thisParms, out errorMessage);
                            }
                        }
                        catch
                        {

                        }
                    }
                    else
                    {
                        context.Response.Write(result);
                    }
                }
            }
        }
        catch (Exception ex)
        {
            result = "[{ \"result\":\"0\"}]";
        }
        context.Response.Write(result);
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
