2013-12-18 3 views
-1

Когда я загружаю файлы на сайт, чтобы он не принимал мои файлы, которые загружаются на сайт!Выше показана ошибка, независимо от того, что я загружаю

проблема заключается в том, что он говорит «ошибка» каждый раз, когда я пытаюсь загрузить изображение на сервер.

Я хочу, чтобы это было сделано только для файлов png, jpg и jpeg типов изображений.

Изображение только 105 KB

и у меня есть

enctype="multipart/form-data" 

на моей форме

PHP

<?php 
if(isset($_POST["TYupdater2"])) 
{ 
    $allowedExts = array("jpeg", "jpg", "png"); 
    $temp = explode(".", $_FILES["file"]["name"]); 
    $extension = end($temp); 
    if((($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts)) 
    { 
     echo "Are now upload to server."; 
    } 
    else 
    { 
    ?> 
    <div id="error">Error!</div> 
    <?php 
    } 
} 
?> 

HT ML

<form action="<?php $_SERVER['PHP_SELF'];?>" method="post" name="bruger-info" enctype="multipart/form-data"> 
<table width="90%" cellpadding="1" cellspacing="1"> 
<tr> 
     <td>Billede</td> 
     <td><input type="file" name="file" id="uploadimg"></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td><input type="submit" name="TYupdater2" class="click kliknu" value="Upload"></td> 
    </tr> 
    <?php 
     $mitpanelimg = $mebe->mitpanelimg();//Upload picture here //uploader billedet her 
    ?> 
</table> 

+2

Вы должны рассмотреть возможность разбиения оператора if на несколько блоков. Это не только поможет читаемости, но вы сможете более точно определить точную ошибку. – Demonslay335

+0

Um ... ['move_uploaded_file'] (http://php.net/move_uploaded_file) находится где? –

+0

echo $ _FILES ["file"] ["type"]; ... emmm ... раньше, если ??? – Hackerman

ответ

0

Ваша проблема - это просто проверка размера файла.

Как сказано в руководстве:

$_FILES['userfile']['size'] 
    The size, in bytes, of the uploaded file. 

Так ваш, если заявление имеет: ($_FILES["file"]["size"] < 20000) что означает ~ 20kb которым всегда получите ложь, если ваш файл больше, чем ~ 20Kb

Вы должны изменить часть на больший размер, если ваш файл 105 КБ ($_FILES["file"]["size"] < 512000), что означает 512Kb

0

Этот сценарий, вероятно, эффективно загружать на сервер. Но, в папку temp. Эта папка освобождается, когда ваш скрипт заканчивает удаление вашего загруженного файла.

Вам необходимо переместить файл__load_file() в тот файл, где вы хотите его сохранить.

Другие предметы, о которых нужно подумать: Сколько файлов вы загружаете? Есть ли шансы, что пользователи могут загружать файлы с тем же именем? многие камеры называют такие вещи, как IMG0001

Загрузка файлов страшная. Сбой сценария, если он скажет ... расширение .php?

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

Читайте внимательно. http://www.php.net/manual/en/features.file-upload.php

Dony бойтесь руководства! без move_uploaded_file ваш скрипт никогда не будет работать - дайте ему прочитать!

0

:) Попробуйте вычислить ($ _FILES [ "файл"] [ "размер"] < 20000). Его < 20K. Вы загружаете изображение (105K).

Смежные вопросы