#php #android #image #upload
#php #Android #изображение #загрузка
Вопрос:
Я использую этот код для загрузки изображения: http://vikaskanani.wordpress.com/2011/01/11/android-upload-image-or-file-using-http-post-multi-part/
Я заменил
bm = BitmapFactory.decodeFile("/data/data/fshizzle.com/files/image.jpg");
и
HttpPost postRequest = new HttpPost("http://10.0.2.2/upload.php");
это все!
Я не могу получить информацию в php-файле, я использую этот код, php работает, если использовать html-код
<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
КОД PHP:
$dossier = './upload/';
$fichier = basename($_FILES['sfsdfsdf']['name']);
if(move_uploaded_file($_FILES['sfsdfsdf']['tmp_name'], $dossier . $fichier))
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo '<br>Echec de l'upload !';
}
простой if(isset($_FILES['sfsdfsdf']))
не работает, что такое хороший код?
Ответ №1:
Если я понимаю вашу проблему, то вчера у меня было то же самое. Из предоставленного вами кода кажется, что они упустили некоторые важные части, такие как enctype. Если вы Google загружаете изображение на php с Android, есть несколько лучших примеров.
Если вы решили сделать это таким образом, убедитесь, что ваши серверные разрешения установлены так, чтобы разрешить php создавать, записывать и / или читать файлы для любого каталога, который вы используете. Я обнаружил, что этот метод оказался настоящей проблемой, и обнаружил, что гораздо проще преобразовать изображение в base64 и отправить его в виде строки на сервер, а php создать файл, используя строку base64. Если вы не можете понять, как это сделать (Google), дайте мне знать, и я посмотрю, смогу ли я отправить вам какой-нибудь код.
Ответ №2:
простой пример загрузки, который поможет вам лучше понять процесс.
<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
upload.php
<?php
$dossier = './upload/';
//check for image mime types amp; under 100kb
if ($_FILES["avatar"]["type"] == "image/jpeg" ||
$_FILES["avatar"]["type"] == "image/png" ||
$_FILES["avatar"]["type"] == "image/gif"
amp;amp; $_FILES["avatar"]["size"] < 100000){
//if server rejects the upload (http://php.net/manual/en/features.file-upload.errors.php)
if($_FILES["avatar"]["error"] > 0){
$uploadSuccess='<br>Echec de l'upload !';
}else{
//check if file already exists
if (file_exists($dossier.$_FILES['avatar']['name'])){
$uploadSuccess=$_FILES["avatar"]["name"]." already exists.";
}else{
//move the uploaded file
move_uploaded_file($_FILES["avatar"]["tmp_name"],$dossier.$_FILES['avatar']['name']);
$uploadSuccess='Upload effectué avec succès !';
//success
}
}
}else{$uploadSuccess='<br>Echec de l'upload !';}
echo $uploadSuccess;
?>
Ответ №3:
Решена, я тестирую с помощью Mydns и моего реального телефона, и это работает.