Как проверить имя файла перед его загрузкой в ​​asp.net - PullRequest
0 голосов
/ 06 октября 2019

Что я намеревался сделать, когда я нажму кнопку загрузки, система проверит, совпадает ли выбранное имя файла с именем файла, которое я хочу или нет (перед тем, как файл будет загружен).

string selectedValue = version.SelectedItem.Value;
string serverPath;

if (FileUpload1.PostedFile.FileName != "")
{
    if (selectedValue == "1")
    {
        // check extension of file before uploading
        if (FileUpload1.PostedFile.FileName == "MyApp.apk")
        {
            serverPath = "C:/MyPath/MyApp.apk";
            FileUpload1.PostedFile.SaveAs(serverPath);
            ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('file has been uploaded successfully');window.location.href = '" + Request.RawUrl + "'; ", true);
        }
        else if (FileUpload1.PostedFile.FileName == "MyApp.ipa")
        {
            serverPath = "C:/MyPath/MyApp.ipa";
            FileUpload1.PostedFile.SaveAs(serverPath);
            ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('file has been uploaded successfully');window.location.href = '" + Request.RawUrl + "'; ", true);
        }
        else
        {
            ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('Please select MyApp file to upload');window.location.href = '" + Request.RawUrl + "'; ", true);
        }
    }
}

Но я получаю следующее: система сначала загрузит файл и отобразит установленное мной предупреждающее сообщение.

Как сначала отобразить сообщение об ошибке (неправильнофайл выбран), до того, как появится панель загрузки по умолчанию?

1 Ответ

1 голос
/ 06 октября 2019

Если вам нужно проверить перед отправкой страницы, вы можете использовать событие onchange на стороне клиента для типа ввода = файл, примерно так:

    <html>
        <body>
            <form>
                <div>
                    file: <input type="file" id="fileupload" />
                </div>
            </form>
            <script>
                document.getElementById('fileupload').addEventListener('change', onUpload);
                function onUpload(e){
                    var files = this.files;
                    if ( files && files.length==1 
                        &&  ( files[0].name.toLowerCase() === "myapp.apk" || files[0].name.toLowerCase() === "myapp.ipa"  )
                        )
                    {
                        //allow to submit file
                    }
                    else{
                        //cancel form submission
                        this.value = "";
                        alert('Please select MyApp file to upload');
                    }
                }
            </script>
        </body>
    </html>
...