Как убедиться, что файл выбран перед загрузкой - PullRequest
1 голос
/ 21 июня 2011

Привет! Я использую codeigniter для загрузки файлов и использую этот код

echo form_open_multipart('controller_a');
echo form_upload('userfile');
echo form_submit('Upload','upload');
echo form_close();

Я храню указатель на загруженный файл в базе данных. Мой вопрос: как мне убедиться, что пользователь имеетвыбрал файл перед нажатием кнопки загрузки, потому что на данный момент код отправляется, даже если пользователь щелкает непосредственно при загрузке без выбора файла

Ответы [ 4 ]

1 голос
/ 16 октября 2011

Наряду с проверкой на стороне клиента, вы также должны использовать проверку на стороне сервера. В настоящее время CodeIgniter не предоставляет функции, поэтому можно использовать встроенную функцию PHP is_uploaded_file:

if (is_uploaded_file($_FILES['myfile']['tmp_name']))
{
    $this->load->library('upload');

    $this->upload->do_upload('myfile');
}
0 голосов
/ 22 июня 2011

используйте JS

очень простой код, но он работает.

<script type="text/javascript">

<!--

function validate_form ( )
{
    valid = true;

        if ( document.upload_form.something.value == "" )
        {
                alert ( "Please select a file before clicking upload ! " );
                valid = false;
        }

        return valid;
}

//-->

</script>

и использовать при отправке даже в виде

onSubmit="return validate_form ( );"

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

0 голосов
/ 22 июня 2011

Лучше всего использовать плагин jQuery, как показано ниже:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

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

0 голосов
/ 21 июня 2011

Вы не можете, по крайней мере, в CodeIgniter.Вам нужно будет перезаписать JS свойство onsubmit формы, а затем проверить значение ввода пользовательского файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...