
Android
Java// 创建一个Intent来选择图片Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intent, PICK_IMAGE_REQUEST);// 在onActivityResult方法中处理结果@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { Uri selectedImageUri = data.getData(); try { // 将选中的图片转换为文件 File file = new File(getRealPathFromURI(selectedImageUri)); // 创建一个RequestBody来包装文件 RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file); // 创建一个MultipartBody.Part来包装RequestBody MultipartBody.Part filePart = MultipartBody.Part.createFormData("image", file.getName(), requestBody); // 创建一个Retrofit实例 Retrofit retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); // 创建一个文件上传的服务接口 FileUploadService service = retrofit.create(FileUploadService.class); // 调用文件上传的方法 Call<ResponseBody> call = service.uploadFile(filePart); // 异步执行文件上传请求 call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { // 文件上传成功 Toast.makeText(MAInActivity.this, "文件上传成功", Toast.LENGTH_SHORT).show(); } @Override public void onFAIlure(Call<ResponseBody> call, Throwable t) { // 文件上传失败 Toast.makeText(MAInActivity.this, "文件上传失败", Toast.LENGTH_SHORT).show(); } }); } catch (Exception e) { e.printStackTrace(); } }}// 获取图片的真实路径private String getRealPathFromURI(Uri contentUri) { String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = getcontentResolver().query(contentUri, projection, null, null, null); int column_index = cursor.getcolumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); String path = cursor.getString(column_index); cursor.close(); return path;}Django端处理图片上传在Django服务器端,我们需要编写相应的视图函数来处理图片上传请求。首先,我们需要在Django的settings.py文件中配置文件上传的路径:PythonMEDIA_ROOT = os.path.join(BASE_DIR, 'media')然后,在Django应用的views.py文件中添加一个用于处理图片上传的视图函数:
Pythonfrom Django.http import JSonResponsedef upload_file(request): if request.method == 'POST' and request.FILES['image']: image = request.FILES['image'] # 在这里可以对上传的图片进行处理,比如保存到服务器的磁盘上 return JSonResponse({'message': '文件上传成功'}) else: return JSonResponse({'message': '文件上传失败'})在上述代码中,我们首先判断请求的方法是否为POST,并且是否包含名为'image'的文件。然后,可以对上传的图片进行一些处理,比如保存到服务器的磁盘上。最后,返回一个JSON响应,告知客户端文件上传的结果。本文介绍了如何在Android客户端使用Django进行图片上传,并提供了相应的案例代码。通过这个例子,读者可以了解到如何在Android端选择图片并将其上传到Django服务器,以及在Django端如何处理图片上传请求。希望本文对读者有所帮助。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号