#php #android #file-upload
#php #Android #загрузка файла
Вопрос:
Я хочу запустить камеру, щелкнуть фотографию и сохранить ее на SD-карте, и она должна автоматически выбрать конкретный файл и предоставить возможность загрузки с отображением изображения на экране.
При нажатии кнопки загрузить оно должно загрузиться на сервер. Я тоже хочу знать, как обрабатывать загрузку файлов на PHP через Android-приложение.
Я новичок в Android. Пожалуйста, направьте меня
Ответ №1:
Возьмите из этого потока:
public void doUpload(String filepath,String filename) {
HttpClient httpClient = new DefaultHttpClient();
try {
httpClient.getParams().setParameter("http.socket.timeout", new Integer(90000)); // 90 second
post = new HttpPost(new URI(YOUR_SERVER_ADDRESS));
File file = new File(filepath);
FileEntity entity;
if (filepath.substring(filepath.length()-3, filepath.length ()).equalsIgnoreCase("txt") ||
filepath.substring(filepath.length()-3, filepath.length ()).equalsIgnoreCase("log")) {
entity = new FileEntity(file,"text/plain; charset="UTF-8"");
entity.setChunked(true);
}else {
entity = new FileEntity(file,"binary/octet-stream");
entity.setChunked(true);
}
post.setEntity(entity);
post.addHeader(FILENAME_STR, filename);
HttpResponse response = httpClient.execute(post);
if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
Log.e(TAG,"--------Error--------Response Status line code:" response.getStatusLine());
}else {
// Here every thing is fine.
}
HttpEntity resEntity = response.getEntity();
if (resEntity == null) {
Log.e(TAG,"---------Error No Response !!!-----");
}
} catch (Exception ex) {
Log.e(TAG,"---------Error-----" ex.getMessage());
ex.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}
}
Комментарии:
1. то есть в основном это действует как форма, которая отправляет файл на эту страницу?
2. Я предполагал, что у вас есть обработчик загрузки файлов (mime-multipart) на вашем PHP-сервере. Верно?
3. это первый раз, когда я пытаюсь связать Android с php. я знаю, как написать обработчик файлов php .. это то же самое? Тогда $ _POST должен предоставить мне весь контент, верно?
4. можете ли вы привести мне пример, как использовать этот метод .. я пробовал, но у меня это не работает..
5. Я не знаю PHP, поэтому могу сказать вам, что может быть не так. Вы получаете какую-то ошибку?