46
47 48 49 50 51 52 53 54 55 cellpadding="0"> 56 57 58 Registrar para recebimento 59 60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 76 77 Título do arquivo
78 79 80 81 Display="Dynamic" ErrorMessage="O título do arquivo não pode estar vazio."> 82 83 84 85 usuários locais 86 87 88 id="SelectLocal" class="Input_Button" name="SelectLocal" onClick="vbscript:Select_Local_User('..SelectMulti.aspx')" type="button" 89 value="select" /> 90 91 92 93 94 usuários remotos 95 96 97 98 type="botão" valor="selecionar" /> 99 100 101 102 103 Upload de arquivo 104 105 106 107 108 109 110 111 112 113 114 115 Conteúdo do e-mail
116 117 118 119 Display="Dynamic" ErrorMessage="O conteúdo do e-mail não pode estar vazio."> 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 < /td> 136 137 /td> 138 139 140 141 142 143 144 145 EnviarE-mail.aspx.cs 1usando Sistema; 2usando System.Data; 3usando System.Configuration; 4usando System.Collections; 5usando System.Web; 6usando System.Web.Security; 7usando System.Web.UI; 8usando System.Web.UI.WebControls; 9usando System.Web.UI.WebControls.WebParts; 10usando System.Web.UI.HtmlControls; 11 12usando System.Data; 13usando System.Data.SqlClient; 14usando EOffice.Model; 15usando EOffice.SqlServer; 16usando System.IO; 17usando System.Configuration; 18 19 //usando iWebSMS2000; 20[Serializável] 21classe parcial pública GroupWork_SendEmail: System.Web.UI.Page vinte e dois{ 23 conexão pública SqlConnection; 24 //SMS iSMS2000 público; 25 //public DBstep.SMSClient2000 ObjiSMSClient2000; 26 Page_Load nulo protegido (remetente do objeto, EventArgs e) 27 { 28 conexão = new SqlConnection("SERVER=SERVER;UID=sa;PWD=8860;database=EOFFICE_SERVER;"); 29 30} 31 void protegido btnSubmit_Click(objeto remetente, EventArgs e) 32 { 33 String strTítulo = txtTítulo.Texto; 34 String strContent = txtContent.Text; 35 UserInfo info = (UserInfo)Session["EOfficeUserInfo"]; 36 String strNomeUsuário = info.NomeUsuário; 37 String strTmpDept = info.DeptId.ToString(); 38 39 String strNomeUnit = ConfigurationSettings.AppSettings["NomeUnit"]; 40 String strServerFileIndex = ""; //Índice de anexo de arquivo do lado do servidor 41 String strClientFileIndex = ""; //Índice de anexo do arquivo cliente 42 43 String strRemote = HiddenField2.Value; 44 String[] strRemoteUser = strRemote.Split(','); 45 String strTmpUserName; 46 String strTmpServer; 47 Booleano bDone = falso; 48 49 /**/////////Fazer upload de vários códigos de anexo////////////// 50 //Obter o elemento do formulário Arquivo 51 arquivos HttpFileCollection = HttpContext.Current.Request.Files; 52 HttpPostedFile postadoArquivo; 53 54 foreach (string strUser em strRemoteUser) 55 { 56 String[] strSplit = strUser.Split('/'); 57 strTmpUserName = strSplit[0]; 58 strTmpServer = strSplit[1]; 59 String strConnectString = ""; 60 String strAreaName = ""; 61 int nAreaID = 0; 62 StringstrDept = ""; 63strClientFileIndex = ""; 64 SqlConnection connClient; 65 66 String strSQL = "Selecionar * Da área Onde AreaCode='" + strTmpServer + "'"; 67 SqlCommand cmd = novo SqlCommand(strSQL, conn); 68 cmd.Connection.Open(); 69 usando (SqlDataReader sdr = cmd.ExecuteReader()) 70 { 71 se (sdr.Leitura()) 72 { 73 strConnectString = sdr["ConnectString"].ToString(); 74 strAreaName = sdr["AreaName"].ToString(); 75 nAreaID = Convert.ToInt16(sdr["ID"]); 76} 77} 78 cmd.Connection.Close(); 79 80 strSQL = "Selecione * From MemberList Where UserName='" + strTmpUserName + "' And AreaID=" + nAreaID; 81 cmd = novo SqlCommand(strSQL, conn); 82 cmd.Connection.Open(); 83 usando (SqlDataReader sdr = cmd.ExecuteReader()) 84 { 85 se (sdr.Leitura()) 86 { 87 strDept = sdr["Dept"].ToString(); 88} 89} 90 cmd.Connection.Close(); 91 92 connClient = new SqlConnection(strConnectString); 93 94 para (int intCount = 0; intCount < arquivos.Count; intCount++) 95 { 96 arquivo postado = arquivos[intCount]; 97 98 se (postedFile.ContentLength > 0) 99 { 100 String strOldFilePath = postFile.FileName; 101 String strNomeArquivo = strOldFilePath.Substring(strOldFilePath.LastIndexOf("\") + 1); 102 103 //Enviar arquivos para o servidor 104 //File1.PostedFile.SaveAs("c:\Test\" + DateTime.Now.ToString("yyyyMMddhhmmss") + strExtension); 105 106 //Usado para salvar o tamanho do arquivo 107 int intDocLen; 108 //Stream é usado para ler os dados enviados 109 Fluxo objStream; 110 String strDocExt; 111 //Carrega o conteúdo específico do arquivo 112 intDocLen = postFile.ContentLength; 113 strDocExt = strOldFilePath.Substring(strOldFilePath.LastIndexOf(".") + 1); 114 115 byte[] Docbuffer = novo byte[intDocLen]; 116 objStream = postFile.InputStream; 117 118 119 //Salva o arquivo no cache 120 121 //O cache será salvo no banco de dados 122 objStream.Read(Docbuffer, 0, intDocLen); 123 124 string fileType = postFile.ContentType; 125 126 127 //Executa o procedimento armazenado do lado do servidor Send_Group_Email 128 se (!bConcluído) 129 { 130 cmd = new SqlCommand("Send_Group_Email", conexão); 131 cmd.CommandType = CommandType.StoredProcedure; 132 cmd.Parameters.Add("@NomeArquivo ", SqlDbType.VarChar, 200); 133 cmd.Parameters.Add("@FileBody", SqlDbType.Image); 134 cmd.Parameters.Add("@FileType", SqlDbType.VarChar, 4); 135 cmd.Parameters.Add("@File_Index", SqlDbType.Int); 136 137 cmd.Parâmetros[0].Valor = strNomeArquivo; 138 cmd.Parâmetros[1].Valor = Docbuffer; 139 //cmd.Parâmetros[2].Value = strDocExt;] 140 cmd.Parâmetros[2].Valor = tipo de arquivo; 141 142 //cmd.Parameters.Add(new SqlParameter("@File_Index", SqlDbType.Int)); 143 cmd.Parameters[3].Direction = ParameterDirection.ReturnValue; 144 cmd.Connection.Open(); 145 cmd.ExecuteNonQuery(); 146 strServerFileIndex += cmd.Parameters[3].Value.ToString() + ","; 147 cmd.Connection.Close(); 148} 149 150 //Executa o procedimento armazenado do cliente Get_Upload_File 151 cmd = new SqlCommand("Get_Upload_File", connClient); 152 cmd.CommandType = CommandType.StoredProcedure; 153 cmd.Parameters.Add("@NomeArquivo ", SqlDbType.VarChar, 200); 154 cmd.Parameters.Add("@FileBody", SqlDbType.Image); 155 cmd.Parameters.Add("@FileType", SqlDbType.VarChar, 4); 156 cmd.Parameters.Add("@File_Index", SqlDbType.Int); 157 158 cmd.Parâmetros[0].Valor = strNomeArquivo; 159 cmd.Parâmetros[1].Valor = Docbuffer; 160 //cmd.Parâmetros[2].Valor = strDocExt; 161 cmd.Parâmetros[2].Valor = tipo de arquivo; 162 163 //cmd.Parameters.Add(new SqlParameter("@File_Index", SqlDbType.Int)); 164 cmd.Parameters[3].Direction = ParameterDirection.ReturnValue; 165 cmd.Connection.Open(); 166 cmd.ExecuteNonQuery(); 167 strClientFileIndex += cmd.Parameters[3].Value.ToString() + ","; 168 cmd.Connection.Close(); 169} 170 171 if (intCount.Equals(arquivos.Count - 1)) 172 { 173 bConcluído = verdadeiro; 174} 175} 176 177 strClientFileIndex = strClientFileIndex.Remove(strClientFileIndex.Length - 1); 178 179 strSQL = "Inserir em Group_Email (Título,Conteúdo,Área,SendToUser,Dept,Sender,Files_Index)"; 180 strSQL += "valores("; 181 strSQL += "'" + strTitle + "',"; 182 strSQL += "'" + strContent + "',"; 183 strSQL += "'" + strNomeUnit + "',"; 184 strSQL += "'" + strTmpUserName + "',"; 185 strSQL += "'" + strDept + "',"; 186 strSQL += "'" + strNomeUsuário + "',"; 187 strSQL += "'" + strClientFileIndex + "')"; 188 cmd = novo SqlCommand(strSQL, connClient); 189 cmd.Connection.Open(); 190 cmd.ExecuteNonQuery(); 191 cmd.Connection.Close(); 192 193 String strTmpServerFileIndex = strServerFileIndex.Remove(strServerFileIndex.Length - 1); 194 195 strSQL = "Inserir em Group_Email_Sever (Título,Conteúdo,Área,SendToUser,Dept,Sender,Files_Index)"; 196 strSQL += "valores("; 197 strSQL += "'" + strTitle + "',"; 198 strSQL += "'" + strContent + "',"; 199 strSQL += "'" + strAreaName + "',"; 200 strSQL += "'" + strTmpUserName + "',"; 201 strSQL += "'" + strTmpDept + "',"; 202 strSQL += "'" + strNomeUsuário + "',"; 203 strSQL += "'" + strTmpServerFileIndex + "')"; 204 cmd = novo SqlCommand(strSQL, conn); 205 cmd.Connection.Open(); 206 cmd.ExecuteNonQuery(); 207 cmd.Connection.Close(); 208} 209 /**/////////Terminar upload de vários anexos////////////// 210 Response.Redirect("../SuccessMsg.aspx"); 211} 212} 213 Código para baixar o arquivo: DownFile.aspx DownFile.aspx.cs 1usando Sistema; 2usando System.Data; 3usando System.Configuration; 4usando System.Collections; 5usando System.Web; 6usando System.Web.Security; 7usando System.Web.UI; 8usando System.Web.UI.WebControls; 9usando System.Web.UI.WebControls.WebParts; 10usando System.Web.UI.HtmlControls; 11 12usando System.Data; 13usando System.Data.SqlClient; 14usando EOffice.Model; 15usando EOffice.SqlServer; 16usando System.IO; 17 18[Serializável] 19classe parcial pública GroupWork_DownFile: System.Web.UI.Page 20{ 21 conexão pública SqlConnection; 22 String pública strFileID; 23 informações públicas do UserInfo; 24 Page_Load nulo protegido (remetente do objeto, EventArgs e) 25 { 26 strFileID = Request.QueryString["ID"]; 27 info = (UserInfo)Sessão["EOfficeUserInfo"]; 28 29 se (strFileID == nulo) 30 { 31 Response.Redirect("../ErrorMsg.aspx"); 32} 33 34 DbLink db = new DbLink(); 35 conexão = db.Connect(); 36 37 String strSQL = "Selecione * From Group_Files Where ID=" + strFileID //+ " And SendToUser = '" + info.UserName + "'"; 38 SqlCommand cmd = novo SqlCommand(strSQL, conn); 39 cmd.Connection.Open(); 40 usando (SqlDataReader sdr = cmd.ExecuteReader()) 41 { 42 se (!sdr.Read()) 43 { 44 Response.Redirect("../ErrorMsg.aspx"); 45} 46 mais 47 { 48 Response.Clear(); 49 String strNomeArquivo = sdr["NomeArquivo"].ToString(); 50 Response.ContentType = "APLICATIVO/OCTET-STREAM"; 51 Response.AddHeader("disposição de conteúdo", "anexo;nome do arquivo=" + HttpUtility.UrlEncode(strFileName)); 52 Response.Buffer = verdadeiro; 53 Response.BinaryWrite((byte[])sdr["FileBody"]); 54 55 //Resposta.Clear(); 56 //Response.ContentType = "aplicativo/fluxo de octetos"; 57 /**/////Response.AddHeader("Content-Type", sdr["FileType"].ToString()); 58 //Response.BinaryWrite((byte[])sdr["FileBody"]); 59} 60} 61 //conn.Close(); 62 63 /**//* 64 SqlDataAdapter da = new SqlDataAdapter(strSQL, conn); 65 SqlCommandBuilder MyCB = novo SqlCommandBuilder(da); 66 DataSet ds = new DataSet("MinhasImagens"); 67 byte[] MeusDados = novo byte[0]; 68 da.Fill(ds, "MinhasImagens"); 69 DataRow minhaRow = ds.Tables["MinhasImagens"].Rows[0]; 70 String strNomeArquivo = Convert.ToString(minhaRow["NomeArquivo"]); 71 MeusDados = (byte[])minhaLinha["FileBody"]; 72 int ArraySize = new int(); 73 ArraySize = MyData.GetUpperBound(0); 74 FileStream fs = new FileStream(@"C:\Download" + strFileName, 75 FileMode.OpenOrCreate, FileAccess.Write); 76 fs.Write(MeusDados, 0, ArraySize); 77 fs.Close(); 78 */ 79 //Response.Write("Baixar arquivo" + strFileName + "Sucesso!"); 80} 81} 82
http://topwin.cnblogs.com/archive/2006/07/21/456087.html