Проблема с передачей имени загружаемого файла - PullRequest
0 голосов
/ 13 августа 2011

Я задавал похожий вопрос вчера, но не получил ответа, который помог бы мне, что я хочу сделать, это 1. загрузить файл на сервер 2. получите имя файла, чтобы, если это был файл «hope.jpg» и был загружен в папку «uploads», мне понадобится что-то вроде «uploads / hope.jpg» позже.

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

Произошла ошибка при загрузке файла, попробуйте еще раз! Предупреждение: fopen (uploads /) [function.fopen]: не удалось открыть поток: отказано в доступе в D: \ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php в строке 112

Предупреждение: curl_setopt (): предоставленный аргумент не является допустимым ресурсом дескриптора файла в D: \ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php в строке 121

Предупреждение: fclose (): предоставленный аргумент не является допустимым потоковым ресурсом в D: \ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php в строке 130 ошибка в декодировании:

Вот HTML-форма, которую я использовал:

<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
 Choose a file to upload: <input name="uploadedfile" type="file" /><br />
 <input type="submit" value="Upload File" />
 </form>
 <form action="<?php echo $_SERVER["SCRIPT_NAME"]; ?>" method="POST">
         <label for="action"> Method:</label>
         <select id="action" name="action">
                <option value="generate" <?php echo $action == "generate" ?    'selected="selected"' : ""; ?>>generate</option>
        <option value="encode" <?php echo $action == "encode" ? 'selected="selected"' : ""; ?>>encode</option>
        <option value="decode" <?php echo $action == "decode" ? 'selected="selected"' : ""; ?>>decode</option>
    </select>
    </br>
    <label for="message">Message:</label>
    <input type="text" id="message" name="message" value="<?php echo $message; ?>" />

    <input type="submit" value="Submit" />
</form> 

затем я загружаю файл так:

// Where the file is going to be placed 
 $target_path = "uploads/";

 /* Add the original filename to our target path.  
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
$a = basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
{
    echo "uploads/". $a;
} else{
    echo "There was an error uploading the file, please try again!";
}

И после загрузки файла я попытался расшифровать его с помощью

$json = $api->decode ("uploads/". $a);
    $start='{"content":"';
    $pos_start = strpos($json, $start);

    $end='"}';
    $pos_end = strpos($json, $end);

    if ($pos_start === false || $pos_end === false)

    {
    echo "error in decode";
    exit();
    }

    $wiadomosc = substr($json,12,$pos_end - 12);

    echo $wiadomosc;
    exit();

    break;

К сожалению, строка $json = $api->decode ("uploads/". $a); приносит только некоторые ошибки, но если вы напишите вручную имя файла на сервере, например $json = $api->decode ("uploads/hope.jpg");, все будет работать как надо. Не могли бы вы дать мне какой-нибудь совет о том, как получить имя файла, как если бы он был введен вручную, потому что, очевидно, он не работает, когда я вместо этого помещаю переменную !! спасибо за все ответы

1 Ответ

0 голосов
/ 13 августа 2011

Имя должно быть tmp_name?.......

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