mvc 3でTelerikのuploadコントロールを使用してZip圧縮ファイルをアップロードし、サーバー側解凍でデータベースに1つずつアップロードし、Ionic.Zipを使用する

2328 ワード

viewテンプレートビューコード(部分)
<tr>
            <td>
                    :
            </td>
            <td align="left">
                @(Html.Telerik().Upload().Name("attachments")
                .Async(async => async
                                    .Remove("Remove", "BaseInfo")
                      )
                .Multiple(false)
                   )
                   
               </td> 
        </tr>
controllerのコード(部分):
 /// <summary>
        ///           
        /// </summary>
        /// <param name="attachments"></param>
        [HttpPost]
        public void FormEdit(IEnumerable<HttpPostedFileBase> attachments)
        {
                 if (attachments != null)
            {
                //       
                foreach (var file in attachments)
                {
                    //    zip      ,                             
                    Stream fstream = file.InputStream;
                    ReadOptions readOptions = new ReadOptions();
                    readOptions.Encoding = System.Text.Encoding.Default;

                    ZipFile zipFile = ZipFile.Read(fstream, readOptions);
                    //ZipFile.Read (path+"\\"+filenamet, readOptions);
                    //ZipFile zipFile = ZipFile.Read(@"C:\Users\wanglei\Desktop\testUpload.zip", readOptions);
                    IList<ZipEntry> zipList = zipFile.ToList();
                    string zipName = string.Empty;//          
                    List<UploadFilesDTO> listUpLoadFiles = new List<UploadFilesDTO>();
                    string tempFileName = string.Empty;//   
                    string tempFileCode = string.Empty;//    

                    #region //           
                    foreach (ZipEntry zip in zipList)
                    {
                        string zipName=zip.FileName;//   
//       
byte[] buffer = new byte[zip.UncompressedSize];
                            var str = zip.OpenReader();
                            str.Read(buffer, 0, buffer.Length);
//                          ,        
                    }
}
}
        }

zip圧縮パッケージの操作には参照が必要です Ionic.Zip;