シナリオ:ファイルをアップロードしようとするよりも、DotNetZip
をパスワード保護で使用してください。パスワードはMembership.GeneratePassword()
メソッドで生成されます。ユーザーが生成されたパスワードでファイルを解凍できないことを除いて、すべてがうまくいっています。有線のことは、これがときどき15回中1回だけ起こるということです。 パスワードを生成します。DotNetZip解凍中にパスワードが間違っています
public static String FilePassword()
{
while (_filePassword.Length < 12)
{
_filePassword += string.Concat(Membership.GeneratePassword(1, 0).Where(char.IsLetterOrDigit));
}
return _filePassword;
}
保存ファイル:
if (FileUploadControl.HasFile)
{
fileName = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(FileSavePath + fileName);
// Archive uploaded file to zip.
using (ZipFile zip = new ZipFile())
{
// File to be archived.
var file = FileUploadControl.PostedFile;
// Enable encryption of file
zip.Encryption = EncryptionAlgorithm.PkzipWeak;
// Set password.
zip.Password = Settings.FilePassword();
// Set temporary folder path for archive process.
zip.TempFileFolder = tempPath;
// Add file to archive with its path.
zip.AddFile(FileSavePath + file.FileName, "");
File objFile = new File(file.FileName, FileSavePath);
// Save zip file with the name as file ID.
zip.Save(FileSavePath + file.FileName);
}
}
なぜ時々、この方法で作成しても、パスワード付きのzipファイルを保護しながら、彼らは常に一致している、私が間違っているものを見ることはできませんが、私はパスワードをログに記録ファイルを解凍している間は間違ったパスワードが表示されます。
を理解するためのサンプルは、あなたは私達に仕事をしたパスワードのいくつかの例を表示することができますし、動作しませんでしたか? – mjwills
パスワードの文字エンコードを確認しましたか? – Baccata
@mjwillsパスワードは英数字ですが、現用パスの1つ:vKkowRZBtIxo、動作していないもの:QjCFFaM9LumZ – Mony