-3
<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\Program Files\wamp\www\workspace\DiaryApp\upload\".$new_image_name);
?>

私はphpに慣れていないというエラーで私を助けてください

4

4 に答える 4

5

\のパス パラメータの最後をエスケープしますmove_uploaded_file()

"C:\Program Files\wamp\www\workspace\DiaryApp\upload\\"

それ以外の場合は、実際には終了文字列区切り文字をエスケープし、文字列にリテラルの double-quote"として追加しています。これは、次の変数 と連結される前に文字列が終了していないことを意味し、指定したエラーが発生します。$new_image_name

于 2013-02-23T21:09:24.443 に答える
2

最後の行を次のように変更する必要があります。

move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);

パス名のすべての円記号をエスケープするため

于 2013-02-23T21:11:26.260 に答える
2

ファイルパスではスラッシュ/を使用します。これはWindowsで機能します。また、これらのパスを変数に書き込みます。これらをハードコーディングする必要はありません。

于 2013-02-23T21:11:39.037 に答える
1

私はあなたが新人であることがわかります (それが問題であるというわけではありません。

a\は、特別な文字が続くことを示す php の通知です。例: \n \r \" \'

そのため、「エスケープ」する必要があります\

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);
?>

これは、文字列を" (二重引用符)で囲む場合のみです。 ' (一重引用符) で囲むこともできますが、エスケープしてはなりません。 ==> そうではなく、常にエスケープする必要があります。\

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], 'C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\'.$new_image_name);
?>

これは教育に役立ちます:

だから私はここであなたが考えている:「 「の違いは何ですか?」。

たとえば、引用符の間に変数を配置できます

<?php
$str="string";
echo "this is a $str.";
?>

出力は次のようになります。これは文字列です。

' 'を使用すると、すべての文字が文字どおりに解釈されます

<?php
$str="string";
echo 'this is a $str.';
?>

出力は次のようになります。これは $str です。

于 2013-02-23T21:28:18.100 に答える