Помогите...! загрузка файла той же страницы в MySQL - PullRequest
0 голосов
/ 30 января 2010

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

Предупреждение: fopen () [function.fopen]: Имя файла не может быть пустым в C: \ XAMPP \ HTDOCS \ speedycms \ manageclient.php по линии 205

Предупреждение: fread () ожидает параметр 1 быть ресурсом, логическое значение дано в C: \ XAMPP \ HTDOCS \ speedycms \ manageclient.php по линии 206

Предупреждение: fclose () ожидает параметр 1 быть ресурсом, логическое значение дано в C: \ XAMPP \ HTDOCS \ speedycms \ manageclient.php в строке 208 Ошибка, запрос не выполнен

это код, который я пытался заставить работать ... можете ли вы предложить любые способы заставить все это работать на одной странице, а не разбивать его на две части, кроме ajax (я не слишком знаком с это) ... все на одной странице

любая помощь будет оценена!

         <!-- upload file --->

             <?php
                     if (array_key_exists('uploadfile',$_POST)) {
    $fileName = $_FILES['userfile']['name'];
    $tmpName  = $_FILES['userfile']['tmp_name'];
    $fileSize = $_FILES['userfile']['size'];
    $fileType = $_FILES['userfile']['type'];

    $fp      = fopen($tmpName, 'r');
    $content = fread($fp, filesize($tmpName));
    $content = addslashes($content);
    fclose($fp);

    if(!get_magic_quotes_gpc())
    {
        $fileName = addslashes($fileName);
    }

    $uploadQry = "INSERT INTO upload (name, size, type, content ) ".
    "VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

    mysql_query($uploadQry) or die('Error, query failed'); 

    echo "<br>File $fileName uploaded<br>";
    exit;
                     }
    ?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'] . '?id=' . intval($client_id); ?>">
    <p>
         <b>File Upload</b></p>
    <p>
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"><BR />
               <input type="hidden" name="uploadfile" value="1"/> 
<input name="upload" type="submit" id="upload" value=" Upload ">
    </p>
    <p>      <a href="#viewFiles" class="form" rel="facebox">View files</a>

    </p>
    <div id="viewFiles" style="display:none;" rel="facebox"> 
      <div style="width:300px; height: 300px;"></div></div></form>

Ответы [ 2 ]

1 голос
/ 30 января 2010

Вам необходимо установить правильную кодировку вашей формы , чтобы разрешить загрузку файлов:

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    ...
</form>

Редактировать : Filename cannot be empty сообщает, что вы не указали имя файла при первом вызове fopen - вы передаете $ tmpName этому методу, который назначается из $_FILES['userfile']['tmp_name'] .

Единственная причина, по которой я могу подумать, что $_FILES['userfile']['tmp_name'] пуст, - это то, что вы на самом деле не загрузили файл?

0 голосов
/ 30 января 2010

В сообщении об ошибке говорится, что в

$fp      = fopen($tmpName, 'r');

$ tmpName пусто (или NULL).

Попробуйте посмотреть в $ _FILES, чтобы увидеть, что у вас есть:

print serialize($_FILES);
...