【问题标题】:How to delete already uploaded image file from server?如何从服务器中删除已上传的图像文件?
【发布时间】:2016-12-28 04:14:43
【问题描述】:

我使用 PHP 通过 XAMPP 服务器创建了图像上传。但我需要 知道如何从 Android 中删除上传的图像文件。我该怎么做?

php file(upload) : 

<?PHP
if(isset($_POST['image'])){


    $now = DateTime::createFromFormat('U.u', microtime(true));
    $id  = $now->format('YmdHisu');

    $upload_folder = "upload/";
    $path = "$upload_folder/$id.jpeg";
    $image = $_POST['image'];


    if(file_put_contents($path, base64_decode($image)) != false){
        echo "uploaded_success";
        exit;
    }
    else 
    {
    echo "Sorry, your file is too large.";
    echo "upload_failed";
    exit;
    }                                                                                                                        
    }
    else{

    echo "image_not_in";
    exit;


}
?>

【问题讨论】:

  • 您的问题需要改进...您尝试在 java 中删除什么文件。有很多代码行只是为了删除,所以我不打算阅读这些。首先,尝试删除一个文件,然后想想什么时候可以执行这个方法。另外,标题和真正简短的解释不一样,你想从android或服务器中删除?只有android标签所以我猜只有Android
  • 我想创建支持图片上传和图片删除的安卓应用。我已经创建了图片上传。所以我需要从服务器删除图片。
  • 解释从服务器中删除。是否可以向应用确认它可以从 SD 卡或内部存储中删除文件,是否可以删除服务器上的文件。由于您没有添加 PHP 标记,我怀疑您是否想要最后一个。而且您发布的代码没有解释您尝试过的内容。只是发布代码是残酷的,没有帮助。它有什么问题? (所有这些解释都应该添加到问题中,而不是评论中;))
  • 我需要从服务器(例如Xampp服务器)上删除已经上传的图像。这不是残酷的。我是stackoverflow中的新人。所以我不知道如何使用它。无辜的。@AxelH

标签: android android-layout


【解决方案1】:

您可以在服务器响应成功后获取照片路径并将其删除! 确保在清单中声明权限!

<uses-permission> android:name="android.permission.WRITE_INTERNAL_STORAGE" />

在你的代码中..

PostResponseAsyncTask task = new PostResponseAsyncTask(MainActivity.this, postData, new AsyncResponse() {


        @Override
        public void processFinish(String s) {


            if (s.contains("uploaded_success")) {
                File photoDelete = new File(selectedPhoto);
                if (photoDelete.exists()) {
                    if (photoDelete.delete()) {
                        Log.d("DELETE", "deleted:" + selectedPhoto);
                    }
                }
                Toast.makeText(getApplicationContext(), "Image Uploaded Successfully", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "Error while uploading...", Toast.LENGTH_SHORT).show();
            }

        }
    });

【讨论】:

  • 朋友这个代码删除已经存在的图像可以被替换。但我想从服务器中删除图像。该图像在服务器中也可用。@Sadiq Md Asif
【解决方案2】:

您可以通过从您的应用(客户端)向服务器发送命令,要求服务器从其本地存储中删除文件来从服务器中删除图像。

假设您将图像文件的 imageName 设置为 hashmap 以通过以下方式发送到服务器:

HashMap<String, String> postData = new HashMap<String, String>();
postData.put("deleteImage", imageName);

并执行它:

task.execute("http://192.168.1.7/news/delete.php");

现在,您只需要查看是否设置了 deleteImage 的值(在您的服务器上,在 delete.php 文件中)并通过调用 PHP 中的 unlink 方法删除该文件:

删除.php

<?PHP
   if(isset($_POST['deleteImage'])){
      $imageName = $_POST['deleteImage'];
      unlink($imageName) //this deletes the image file
   }
?>

【讨论】:

  • 朋友谢谢。我理解这个过程。但我不知道如何在编码中使用。你能改变使用我上面的代码吗
  • 对不起,您需要自己申请。如果您觉得这个答案令人满意,您可以选择它作为您的答案,以便其他人也可以得到帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
相关资源
最近更新 更多