Why does image upload fail php's is_uploaded_file check?
I have a html form that allows image uploads, but the image uploaded now fails the "is_uploaded_file" check for some reason.
So why does the upload fail the is_uploaded_file check?
HTML:
<form enctype="multipart/form-data" id="RecipeAddForm" method="post"
action="/recipes/add" accept-charset="utf-8">
<!--- Omitted Markup -->
<input type="file" name="data[Recipe][image]" value="" id="RecipeImage" />
<!--- Omitted Markup -->
</form>
PHP:
// returns false
echo is_uploaded_file($file['tmp_name'])?'true':'false';
I did a dump on the $file or $_FILES array:
Array
(
[name] => add or remove.jpg
[type] => image/jpeg
[tmp_name] => E:\\xampp\\tmp\\phpB9CB.tmp
[error] => 0
[size] => 71869
)
File size is not too large, and the error was 0. So why does it fail the is_uploaded_fil开发者_运维技巧e check?
Might be a problem with windows, since it's case sensitive and will not match if the path is different. Try using realpath($file['tmp_name'])
try with
if (is_uploaded_file($_FILES['data[Recipe][image]']['tmp_name']))
remember $_FILES
is reserve PHP superglobal variable ..so always write in capital
u can retrieve the correct path of file using
$filename = basename($_FILES['userfile']['name']);
NOTE: why u using array in the name attribute ( name="data[Recipe][image]" ) ?
if there is no specific reason then alwayz make simple code
<input type="file" name="RecipeImage" value="" id="RecipeImage" />
and check simply
if (is_uploaded_file($_FILES['RecipeImage']['tmp_name']))
Remember KISS
After you have used the uploaded image (move_uploaded_file) the function is_uploaded_file always returns false.
精彩评论