Загрузка файла php - PullRequest
       1

Загрузка файла php

0 голосов
/ 01 декабря 2011

Я работаю над тем, как загрузить файл. Это немного смущает меня, потому что я только учусь этому. У меня есть имя базы данных tblFile для загрузки. У меня также есть папка для загрузки имени моего рабочего стола для uploads. Тогда у меня есть скрипт с именем filename.php. Вот немного моего кода, который у меня есть. Как вы видите, я, скорее всего, ошибся в некоторых областях. Загрузка не происходит в папку uploads.

$aryImages=array("image/jpeg","image/png");

$aryDocs=array("application/msword","application/pdf","video/x-msvideo");

$filename=filenameSafe($_FILES['upload']['name']);

$fileType=$_FILES["upload"]["type"];

if (in_array($_FILES["upload"]["type"],$aryImages)){
    createThumb($fileType,$_FILES['uploadFile']['tmp_name'],$filename,100,100);
}
elseif (in_array($_FILES["uploadFile"]["type"],$aryDocs)){
    move_uploaded_file($_FILES['uploadFile']['tmp_name'],
              "/home/valerie2/public_html/elinkswap/filename.php/".$filename);

    $aryColumns=array(  "sessionID"=>$curSess,
                        "fileName"=>$filename,
                        "fileType"=>$fileType,
                        "thumbFileName"=>$thumbFilename,
                        "dateCreated"=>date('Y-m-d H:i:s'));
    dbInsert($filename,$aryColumns,$_FILES["upload"]["type"]);
}
else{
    echo "File Uploaded";
}

Я запутался в 16-м неделях, когда я мучил php во всех различных областях, и в этот момент все, кажется, наталкивается на мою голову. Это часть домашней работы, но я думаю, что у меня есть некоторые файлы задом наперед, и я просто надеюсь, что кто-нибудь поможет мне понять, что я делаю. Спасибо

Edit: Вот файл, над которым я работаю больше:

* * 1010

Но файлы по-прежнему не загружаются в папку загрузки.

Ответы [ 3 ]

1 голос
/ 01 декабря 2011

В дополнение к тому, что написал Раскольников, также убедитесь, что ваши типы MIME охватывают все, что вам нужно, например, "image / jpeg" не единственный тип MIME для файлов JPG, в некоторых системах также может быть " jpg ", и поскольку тип mime - это то, что браузер, т. е. машина конечных пользователей отправляет в вашу форму, он может быть одним из многих.

Проверьте хороший список http://www.webmaster -toolkit.com / mime-types.shtml .

1 голос
/ 01 декабря 2011

Ну, кажется, вы путаете имена $_FILES['upload'] и $_FILES['uploadFile']. Я всего лишь под одним именем: upload. Давайте посмотрим код:

Сначала несколько объявлений ...

$aryImages=array("image/jpeg","image/png");
$aryDocs=array("application/msword","application/pdf","video/x-msvideo");

$filename=filenameSafe($_FILES['upload']['name']);
$fileType=$_FILES["upload"]["type"];

Тогда я думаю, что вы должны проверить тип файла ДО , который вы генерируете thumb, верно? Потому что, если тип файла не в порядке, вы просто не создаете thumb.

if (in_array($_FILES["upload"]["type"],$aryDocs)) {

Итак, тип файла в порядке, теперь создайте thumb ...

    if (in_array($_FILES["upload"]["type"],$aryImages)) {
        createThumb($fileType,$_FILES['upload']['tmp_name'],$filename,100,100);
    }

Настоятельно рекомендуется проверять все шаги, подобные move_uploaded_file. Эта функция имеет решающее значение для всего сценария отлично работает ...

    if (move_uploaded_file($_FILES['upload']['tmp_name'],
"/home/valerie2/public_html/elinkswap/filename.php/".$filename)) {
        $aryColumns=array("sessionID"=>$curSess,"fileName"=>$filename,"fileType"=>$fileType,"thumbFileName"=>$thumbFilename,"dateCreated"=>date('Y-m-d H:i:s'));

Хорошо, теперь вот вы проверите, выполняет ли ваша функция dbInsert, хорошо ли выполняет свою работу ...

        if (dbInsert($filename,$aryColumns,$_FILES["upload"]["type"])) {
           // Upload OK
        } else {
           // Error inserting on DB
        }
    } else {
        // Error moving file!!
    }
}

Обратите внимание, что я не тестировал этот скрипт. Надеюсь, это поможет!

1 голос
/ 01 декабря 2011

Я заметил, что вы имеете в виду как $_FILES['upload'], так и $_FILES['uploadFile'].Я подозреваю, что это ваша проблема.Проверьте название поля формы.Если это не решит вашу проблему, я предлагаю прочитать главу на сайте PHP о загрузках файлов .Вы также можете обнаружить, что неправильно настроили свое поле формы, например, не указав атрибут enctype="multipart/form-data" в своем теге <form>.

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

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