0

ドキュメントをアップロードしようとしています。ユーザーはドキュメントをアップロードできますが、ドキュメントの代わりに画像をアップロードすることができます。これについて条件を適用する方法を制限したいです。これは私のアップロード コードです。

            if (FileUploadControl.PostedFile != null && 
             FileUploadControl.PostedFile.ContentLength 
            > 0)
        {
            if
                (FileUploadControl.FileContent.Length < 100000)
            {
                string filename = 
                Path.GetFileName(FileUploadControl.PostedFile.FileName);
                string folder = Server.MapPath("~/Docfiles/");
                Directory.CreateDirectory(folder);
                FileUploadControl.PostedFile.SaveAs(Path.Combine(folder, filename));
                try
                {
                    cc.upload1(Txt_docde.Value, txt_dname.Value, 
              FileUploadControl.FileName, Convert.ToInt32(Docdrop.SelectedValue),
                       Convert.ToInt32(DropDownList2.SelectedValue), 
              Convert.ToString(Session["Login2"]),Convert.ToInt32(Session["UserID"]));
                    StatusLabel.ForeColor = System.Drawing.Color.Green;
                    //StatusLabel.ForeColor = System.Drawing.FontStyle.Bold;
                    StatusLabel.Text = "Success";
                }
                catch
                {
                    StatusLabel.ForeColor = System.Drawing.Color.Red;
                    Label2.Text = "Failed";


                }
            }
                else
            {
                 StatusLabel.ForeColor = System.Drawing.Color.Red;
                            Label2.Text = "File Size to big";
            }
        }
4

4 に答える 4

3

許可する拡張子の一般的なリストを作成し、アップロードしようとしているファイルがその拡張子の要件を満たしているかどうかを確認します。

var allowedExtensions = new string[] { "doc", "docx", "pdf" };
var extension = Path.GetExtension(FileUploadControl.PostedFile.FileName).ToLower().Replace(".", "");

if (allowedExtensions.Contains(extension))
{
    // Good to go
}

ここに完全なコードがあります

if (FileUploadControl.PostedFile != null && FileUploadControl.PostedFile.ContentLength > 0)
{
    var allowedExtensions = new string[] { "doc", "docx", "pdf" };
    var extension = Path.GetExtension(FileUploadControl.PostedFile.FileName).ToLower().Replace(".", "");

    if (FileUploadControl.FileContent.Length < 100000 && allowedExtensions.Contains(extension))
    {
        string filename = 
        Path.GetFileName(FileUploadControl.PostedFile.FileName);
        string folder = Server.MapPath("~/Docfiles/");
        Directory.CreateDirectory(folder);
        FileUploadControl.PostedFile.SaveAs(Path.Combine(folder, filename));

        try
        {
            cc.upload1(Txt_docde.Value, txt_dname.Value, FileUploadControl.FileName, Convert.ToInt32(Docdrop.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue),  Convert.ToString(Session["Login2"]),Convert.ToInt32(Session["UserID"]));
            StatusLabel.ForeColor = System.Drawing.Color.Green;
            StatusLabel.Text = "Success";
        }
        catch
        {
            StatusLabel.ForeColor = System.Drawing.Color.Red;
            Label2.Text = "Failed";
        }
    }
    else
    {
         StatusLabel.ForeColor = System.Drawing.Color.Red;
         Label2.Text = "File Size to big";
    }
}
于 2013-11-13T17:50:36.007 に答える
1

興味のあるファイルタイプのサフィックスを検証するには、次のようなことを試してください。

if (string.Equals(fileExt, ".pdf", StringComparison.OrdinalIgnoreCase)) {...}
于 2013-11-13T17:46:10.630 に答える
1

投稿されたファイルの拡張子またはその MIME タイプをチェックして、正しい形式かどうかを検出する必要があります。

MIME タイプを取得し、ContentTypeプロパティを確認します。

ASP.NET MIME タイプを取得する方法

于 2013-11-13T17:46:59.820 に答える