android:使用php在服务器上创建一个新文件夹


android: Create a new folder on a server using php

我正在编写一个Android应用程序,将文件上传到服务器,但我想找到一种方法,如何在服务器上创建一个新文件夹,将文件上载到该文件夹。

我需要在应用程序中用程序创建文件夹,因为应用程序的每个用户都会在服务器上有自己的文件夹,该文件夹将在第一次上传文件时创建。

有人能给我一个如何做的建议吗?

到目前为止,这是我的php脚本:

<?php
    $file_path = "uploads/";
$new_dir_name = $_GET['myDirectory'];
$file_path .= $new_dir_name . '/';
if (!is_dir($file_path)) {
        mkdir($file_path);
    chmod($file_path, 0777);
}
    $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
        echo "success";
    } else{
        echo "fail";
    }
 ?>

这是我的应用程序中连接到它的代码:

            //updated:
            String myDirectory = "nameofNewDir";
        upLoadServerUri = "myserver/upload.php"+"?myDirectory="+myDirectory;  
filePathOnServer = "http://users.ecs.soton.ac.uk/du1e11/uploads/"+myDirectory+"/";

        URL url = new URL(upLoadServerUri);
            // Open a HTTP  connection to  the URL
            conn = (HttpURLConnection) url.openConnection(); 
            conn.setDoInput(true); // Allow Inputs
            conn.setDoOutput(true); // Allow Outputs
            conn.setUseCaches(false); // Don't use a Cached Copy
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Connection", "Keep-Alive");
            conn.setRequestProperty("ENCTYPE", "multipart/form-data");
            conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
            conn.setRequestProperty("uploaded_file", fileName); 
            dos = new DataOutputStream(conn.getOutputStream());
            dos.writeBytes("Content-Disposition: form-data; name=uploaded_file;filename= '"
                    + fileName + "'" + lineEnd);

首先,您应该有一个可写的基本目录,PHP可以在其中创建子文件夹。然后在上传服务器端脚本中,使用mkdir()命令和chmod()创建并相应地设置目录的权限,然后将上传的文件移动到该文件夹。当你通过android应用程序上传文件时,文件夹将自动创建,文件将移动到那里。

以下是您特定情况的代码:

<?php
    $file_path = "uploads/";
    $new_name = "new_folder"; // this is the new folder you'll create
    $file_path .= $new_name . '/';
    mkdir($file_path);
    chmod($file_path, 0777);
    $file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
        echo "success";
    } else{
        echo "fail";
    }
 ?>

在你的问题中,你说你不知道要创建的文件夹的名称。好吧,这应该在PHP端完成。您应该在服务器上决定要使用的文件夹名称。在您的原始代码中,没有任何内容指定文件夹,因此由您决定如何执行。