mvc 3でTelerikのuploadコントロールを使用してZip圧縮ファイルをアップロードし、サーバー側解凍でデータベースに1つずつアップロードし、Ionic.Zipを使用する
2328 ワード
viewテンプレートビューコード(部分)
zip圧縮パッケージの操作には参照が必要です Ionic.Zip;
<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;