Как загрузить файл в определенную папку с помощью httpClient

Я пытаюсь загрузить ZIP-файл на FTP-сервер с помощью Apache HttpClient.

Мой код Java выглядит так:

public void doFileUpload(String Localfile, String myurl) {
HttpClientBuilder builder = HttpClientBuilder.create();
HttpClient httpClient = builder.build();

HttpPost httpPost = new HttpPost(myurl);
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
entityBuilder.addBinaryBody("file", new File(Localfile));

final HttpEntity entity = entityBuilder.build();
System.out.println(entity.getContentLength());

httpPost.setEntity(entity);
try {
HttpResponse response = httpClient.execute(httpPost);
System.out.println(response.toString());
System.out.println("Success");
} catch (IOException  ex) {
System.out.println("Failed"+ex);
Logger.getLogger(FileUpload.class.getName()).log(Level.SEVERE, null, ex);
}

В моем файле php:

if (!empty($_FILES["file"]["name"])) {
$dat = time();
$file_name=$_FILES["file"]["name"];
$temp_name=$_FILES["file"]["tmp_name"];
$target_path = $file_name."-".$dat;

if (is_uploaded_file($temp_name)) {
echo "File ". $target_path ." uploaded successfully.\n";
move_uploaded_file ($temp_name, $target_path);
} else {
echo "Possible file upload attack: ";
echo "filename '". $temp_name . "'.";
print_r($_FILES);
}
}

Это прекрасно работает, если я загружаю файл в папку, где находится мой php-файл. Но в моем состоянии пользователь будет загружать свои файлы в свою папку. Пример: пользователь А загрузит файл в myftp/upload/A/ или пользователь B загрузит файл в myftp/upload/B/ Целевая папка определяется со стороны пользователя. Я могу создать папку для всех пользователей вручную и поместить php-файл в каждую папку. Но как я могу сделать это с одним файлом php?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]