一直都没有找到能用得类和方法啊
因为是需要查询得时候能同时得到对应产品的图纸和验收报告,请高手告知如何上传?
如果不是图片而是其他格式的文件也是一样的操作方法么?散50分出来求
谢谢了,boss催的紧

解决方案 »

  1.   

    另外补充一下是一个sc系统 不是bs 能不能不通过asp实现??
      

  2.   

    winapp?
    上传的方式如何,如果是网络共享,你可以在连接之后,直接用file.copy即可;
    如果是其他方式,例如Ftp,你可以去找一个别人写好的com来使用。webapp?
    可以使用FileInput来操作,操作细节参看
    http://blog.csdn.net/knight94/archive/2006/03/31/646252.aspx
      

  3.   

    楼上大哥是winapp的程序
    后面连的一个sqlserver,现在就是不知道如何下手啊望指点.直接建立sqlconnection以后做file.copy操作?
    能够这样么?
      

  4.   

    数据库里面也就是几张tables 没有其他的结构了
      

  5.   

    /// <summary>
    /// WebClient上传文件至服务器
    /// </summary>
    /// <param name="fileNamePath">文件名,全路径格式</param>
    /// <param name="uriString">服务器文件夹路径</param>
    private void UpLoadFile(string fileNamePath,string uriString)
    {
    string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);
    NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf(".")); string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
    if(uriString.EndsWith("/") == false) uriString = uriString + "/"; uriString = uriString + NewFileName;
    /// 创建WebClient实例
    WebClient myWebClient = new WebClient();
    myWebClient.Credentials = CredentialCache.DefaultCredentials; // 要上传的文件
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    //FileStream fs = OpenFile();
    BinaryReader r = new BinaryReader(fs);
    try
    {
    //使用UploadFile方法可以用下面的格式
    //myWebClient.UploadFile(uriString,"PUT",fileNamePath);
    byte[] postArray = r.ReadBytes((int)fs.Length);
    Stream postStream = myWebClient.OpenWrite(uriString,"PUT");
    if(postStream.CanWrite)
    {
    postStream.Write(postArray,0,postArray.Length);
    }
    else
    {
    AppHelper.MessageService.ShowError("文件目前不可写!");
    }
    postStream.Close();
    }
    catch
    {
    AppHelper.MessageService.ShowError("文件上传失败,请稍候重试~");
    }
    }
    /// <summary>
    /// 下载服务器文件至客户端 /// </summary>
    /// <param name="URL">被下载的文件地址,绝对路径</param>
    /// <param name="Dir">另存放的目录</param>
    public void Download(string URL,string Dir)
    {
    WebClient client = new WebClient();
    string fileName = URL.Substring(URL.LastIndexOf("\\") + 1);  //被下载的文件名 string Path = Dir+fileName;   //另存为的绝对路径+文件名
       
    try
    {
    WebRequest myre=WebRequest.Create(URL); 
    }
    catch(WebException exp)
    {
    MessageBox.Show(exp.Message,"Error"); 
    }
       
    try
    {
    client.DownloadFile(URL,fileName);
    FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    BinaryReader r = new BinaryReader(fs);
    byte[] mbyte = r.ReadBytes((int)fs.Length);
    FileStream fstr = new FileStream(Path,FileMode.OpenOrCreate,FileAccess.Write);  fstr.Write(mbyte,0,(int)fs.Length);
    fstr.Close();  } 
    catch(WebException exp)

    MessageBox.Show(exp.Message,"Error");


    ------------------
    我现在用的
    需要在服务器上设置web共享和写入权限
      

  6.   

    看看这个可以不?
    -------------------------using System;namespace UpFile
    {
     /// <summary>
     /// upfile 的摘要说明。
     /// </summary>
     public class upfile
     {
      private string path = null;
      private string fileType = null;
      private int sizes = 0;
      /// <summary>
      /// 初始化变量
      /// </summary>
      public upfile()
      {
       path = @"\uploadimages\"; //上传路径
       fileType = "jpg|gif|bmp";
       sizes = 200; //传文件的大小,默认200KB
      }  /// <summary>
      /// 设置上传路径,如:uploadimages\
      /// </summary>
      public string Path
      {
       set
       {
        path = @"\" + value + @"\";
       }
      }  /// <summary>
      /// 设置上传文件大小,单位为KB
      /// </summary>
      public int Sizes
      {
       set
       {
        sizes = value * 1024;
       }
      }  /// <summary>
      /// 设置上传文件的类型,如:jpg|gif|bmp
      /// </summary>
      public string FileType
      {
       set
       {
        fileType = value;
       }
      }  /// <summary>
      /// 上传图片
      /// </summary>
      /// <param name="name">上传控件名称</param>
      /// <param name="creatDirectory">true则以当前时间创建文件夹,false则为设置的文件夹</param>
      /// <returns>返回上传图片的相对路径</returns>
      public string fileSaveAs(System.Web.UI.HtmlControls.HtmlInputFile name,bool creatDirectory)
      {
       try
       {
        string filePath=null;
        //以当前时间修改图片的名字或创建文件夹的名字
        string modifyFileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString();
        //获得站点的物理路径
        string uploadFilePath = null;
        //如果为true则以当前时间创建文件夹,否则为设置的文件夹
        if(creatDirectory)
        {
         uploadFilePath = System.Web.HttpContext.Current.Server.MapPath(".") + @"\" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + @"\";
        }
        else
        {
         uploadFilePath = System.Web.HttpContext.Current.Server.MapPath(".") + path;
        }
        //获得文件的上传的路径
        string sourcePath=name.Value.Trim();
        //判断上传文件是否为空
        if(sourcePath == "" || sourcePath == null)
        {
         message("您没有上传数据呀,是不是搞错了呀!");
         return null;
        }
        //获得文件扩展名
        string tFileType = sourcePath.Substring(sourcePath.LastIndexOf(".")+1);
        //获得上传文件的大小
        long strLen = name.PostedFile.ContentLength;
        //分解允许上传文件的格式
        string[] temp = fileType.Split('|');
        //设置上传的文件是否是允许的格式
        bool flag = false;
        //判断上传文件大小
        if(strLen >= sizes)
        {
         
         message("上传的图片不能大于" + sizes + "KB");
         return null;
        }
        //判断上传的文件是否是允许的格式
        foreach(string data in temp)
        {
         if(data == tFileType)
         {
          flag = true ;
          break;
         }
        }
        //如果为真允许上传,为假则不允许上传
        if(!flag)
        {
         message("目前本系统支持的格式为:"+fileType);
         return null;
        }
        System.IO.DirectoryInfo dir=new System.IO.DirectoryInfo(uploadFilePath);
        //判断文件夹否存在,不存在则创建
        if(!dir.Exists)
        {
         dir.Create();
        } 
        filePath = uploadFilePath + modifyFileName + "." + tFileType;
        name.PostedFile.SaveAs(filePath);
        filePath = path + modifyFileName + "." + tFileType;    return filePath;   }
       catch
       {
        //异常
        message("出现未知错误!");
        return null;
       }
      }  private void message(string msg,string url)
      {
       System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('"+msg+"');window.location='"+url+"'</script>");
      }  private void message(string msg)
      {
       System.Web.HttpContext.Current.Response.Write("<script language=javascript>alert('"+msg+"');</script>");
      }
     }
    }
      

  7.   

    create table
    (
    id int identity(1,1),
    filename varchar(20) unique,
    fileattached varchar(20) unique, -----如果多个附件可以通过分隔符将他们分割与组合如: c:\\a.txt;c:\\b.txt;
        primarykey(id)
    )
    这样就解决了文件附加问题了至于怎么上传就更简单了,html就有上传控件 <INPUT id="UpPhoto" type="file" >
    在asp.net中只要加runat = server 就可以在服务器端调用了
    <INPUT id="UpPhoto" type="file" runat="server">
    处理时
    string sourceImagePath = this.UpPhoto.PostedFile.FileName  ;//获得上传文件名
    UpPhoto.PostedFile.SaveAs(savepath); //保存文件到服务器
      

  8.   

    存在数据库,可以参看
    http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx
      

  9.   

    AppHelper.MessageService.ShowError("...");
    呵呵,这是??蠢猪!
      

  10.   

    如果 存在数据库就好解决了
    但是 要是 存在 文件目录中 建议 最好 使用webservice
    这样 不需要考虑 权限的问题
    通过调用webservice的Upload方法 来上传文件 
    楼主需要 我可以给你发个 使用webservice 的类 和 demo
    或是看
    http://blog.csdn.net/jetxia/archive/2006/04/23/673981.aspx