|
|
|
| Результаты закачивания файла на сервер обрабатываются вот таким образом:
<?php
$tmp_name = $_FILES['userfile']['tmp_name'];
move_uploaded_file($tmp_name, "commerce/" . $_FILES['userfile']['name']);
$price = file_get_contents("commerce/" . $_FILES['userfile']['name']);
|
Все хорошо, если посетитель при вводе выбрал существующий файл и ввод произошел успешно. В противном случае в переменную $price попадают обломки от ранее введенных файлов. Причем не от одного, а от нескольких. И получается примерно так:
mq� .p��..Ե
import-2.xml���Ե� import.xmlEԵ offers.xml�KԵДизайн.doc��EJ& #1333;�
>Инструкция.doc�
|
Попытались после успешного ввода и занесения данных в переменную $price удалить его результаты, очистив историю для будущих вводов:
<?php
unlink ("commerce/" . $_FILES['userfile']['name']);
|
Но появляется сообщение, что операция запрещена.
Каким образом добиться того, что если посетитель выбрал для ввода несуществующий файл, переменная $price оказалась бы пустой или вообще бы не существовала? | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2013 в 11:06)
| | Перед операцией с загруженными файлами, проверьте была ли в текущем обращении к обработчику загрузка файлов. Можно проверить как сам массив $_FILES, так и воспользоваться специализированной функцией is_uploaded_file(). | |
|
|
|
|
|
|
|
для: cheops
(05.01.2013 в 11:15)
| | Нажали на копку "Закачать" и оказались в обработчике.
Проверить $_FILES['userfile']['name'] или $_FILES['userfile']['error'] ? Или $_FILES['userfile']['size'] ?
На что проверять? На существование?
А может быть, надо проверить на существвание is_uploaded_file($_FILES['userfile']['name'])? | |
|
|
|
|
|
|
|
для: Владимир55
(05.01.2013 в 11:25)
| | Достаточно проверить $_FILES['userfile']['name'], на существование и не равенство пустой строке. | |
|
|
|
|
|
|
|
для: cheops
(05.01.2013 в 11:26)
| | Это отлично сработало!
Спасибо! | |
|
|
|