Я задавал похожий вопрос вчера, но не получил ответа, который помог бы мне, что я хочу сделать, это
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");
, все будет работать как надо. Не могли бы вы дать мне какой-нибудь совет о том, как получить имя файла, как если бы он был введен вручную, потому что, очевидно, он не работает, когда я вместо этого помещаю переменную !! спасибо за все ответы