[英]Uploading file from android okhttp to codeigniter
如上述問題所述,我正在嘗試將文件從okhttp3上傳到服務器。
我總是從codeIgniter部分收到“您沒有選擇要上傳的文件”。
這是我的代碼
安卓 :
public void sendItem(File item) { Response response = null; MediaType mediaType = MediaType.parse(FileUtils.getMimeType(item)); try { RequestBody formBody = new MultipartBody.Builder().addFormDataPart("item", item.getName(), RequestBody.create(mediaType, item)).build(); Request request = new Request.Builder().url("index.php").post(formBody).build(); response = client.newCall(request).execute(); int statusCode = response.code(); // always 500 } catch (IOException e) { e.printStackTrace(); } finally { if (response != null) response.close(); } }
服務器代碼:
function upload(){ $config['upload_path'] = '.../assets/...'; $this->load->library('upload', $config); $this->upload->initialize($config); $media = 'item'; if (!$this->upload->do_upload($media)) { $error = array('error' => $this->upload->display_errors()); print_r($error); }else{ $stuff = $this->upload->data(); return $stuff ; } }
我究竟做錯了什么? 謝謝!
我很確定CodeIgniter要求您將$config['allowed_types']
為庫初始化的一部分。 默認安裝未設置“允許的類型”,因此您必須根據文檔在控制器或配置文件中顯式設置它。
您需要添加類似$config['allowed_types'] = 'gif|jpg|png';
在初始化庫之前。
也就是說,這可能不是您唯一的問題。
你能做一個print_r($_FILES);
在您的服務器代碼中,並查看文件數據是否正在該變量中發送?
僅當在$ _FILES中沒有發送文件時,才會從CodeIgniter的Upload庫中顯示“您沒有選擇要上傳的文件”消息。
並且您還應該嘗試回顯print_r($_POST);
確定您的文件數據來自$ _POST還是$ _FILES。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.