私はこの短い基本的なコードを持っています:
<?php
$username = $_POST['User'];
$file = $_FILES['File'];
$size = $_FILES['File']['size'];
$name = $_FILES['File']['name'];
$temp_name = $file['tmp_name'];
$user_id = Data::getUserId($username);
$target_path = "/---/---/profile_pics/" . $name;
$sql = "INSERT INTO profile_photos (name, size, user_id)
VALUES ('{$name}', '{$size}', '{$user_id}');";
mysqli_query($dbconnection, $sql);
move_uploaded_file($temp_name, $target_path);
?>
これはテスト コードであるため、ベスト プラクティスに従っていない可能性があることに注意してください。
MySQL データベースに正しいファイル情報を取得します。しかし、実際のファイルがディレクトリに移動されません。
また、データベースは正しいファイル サイズとファイル名を抽出しているため、確かに正確な何かが PHP に渡されます。
Javaからファイルを渡しています。 ここにその端に関する補足情報があります(誰かがその端について知っている場合に備えて; しかし、私は問題がここにあるとは思いません:
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url_select);
File file = new File(imagePath);
HttpResponse response = null;
MultipartEntity entity = new MultipartEntity();
ContentBody cbFile = new FileBody(file, "image/jpeg");
StringBody sb;
try {
sb = new StringBody(userName);
entity.addPart("User", sb);
entity.addPart("File", cbFile);
post.setEntity(entity);
response = client.execute(post);
}