0

私はこの短い基本的なコードを持っています:

<?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);            
} 
4

2 に答える 2

1

PHP には、宛先ディレクトリーへの書き込み権限がない可能性があります。PHP がファイルに関する情報を持っているのに、それをその場所に移動できない理由はこれで説明できます。

アクセス権が正しく設定されていることを確認するために、同じ場所にあるファイル (fopen、fwrite など) に単純なものを書き込んでみてください。

PHP エラー ログをオンにしている場合は、これに関するメモもログに表示されます。

幸運を祈ります。

于 2013-03-13T19:33:55.090 に答える
0

あなたのパスキディを再確認するためのパスです。それが私の問題に対する答えでした。それ以外の場合、コードは正しいです。

于 2013-03-14T18:41:27.717 に答える