5

ajax 呼び出しを使用して単純なコピーを実行したいと考えています。これは私のコードですが、動作しません。i kepp gets : a copy(../../images/merchant/particulars/208/) failed to open stream: Is a directory in some/filepath on scriptname.php 行 x 、一種のエラー。

corrected code: 

$dir_to_make = '../../images/merchant/particulars/'.$copytothisstore;
$dir = '../../images/merchant/particulars/'.$copytothisstore.'  /'.$copyvalue;
$image_to_copy = '../../images/merchant/particulars/'.$copyfromthisstore.'/'.$copyvalue;






    if(is_file($image_to_copy)){

        //chk if there is a folder created for this store
        if(!is_dir($dir_to_make)){
              mkdir($dir_to_make, 0755);  
              chmod($dir_to_make, 0755);

              //copy the image 
              if (!copy($image_to_copy,$dir)) {
                  echo "failed to copy $image_to_copy\n";
              } else {
                  echo"all is well!!";
              }

           } else {
               chmod($dir_to_make, 0755);
               if (!copy($image_to_copy,$dir)) {
                  echo "failed to copy $image_to_copy\n";
              } else {
                  echo"all is well!!";
              }

           }


           echo"$image_to_copy does exist!";
        } else{
            echo"$image_to_copy does not exist!";
        }
4

3 に答える 3

6

エラーをお読みください。

copy(../../images/merchant/particulars/208/) failed to open stream: Is a directory in some/filepath

ソースファイルはファイルではなく、ディレクトリであると表示されます。

簡単なデバッグで常に問題を解決できます。

$image_to_copy ='../../images/merchant/particulars/'.$copyfromthisstore.'/'.$copyvalue;
echo $image_to_copy; // yes, that could give you the answer

あなたの例では空であることを示します。$copyvalue


なぜこれが戻ってくるのか疑問に思ったらTRUE...

if(file_exists($image_to_copy)){

..ディレクトリ../../images/merchant/particulars/208/が存在するためです。

マニュアルが言うように:

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

if(is_file($image_to_copy)){

もう1つは、宛先もファイルする必要があることです。

copy($image_to_copy, $dir.'file.jpg');

マニュアル:

于 2012-09-01T13:27:53.483 に答える
0

あなたは単純なことを混乱させていると思います。使い方の簡単な例を次に示します。copy()

$file = 'path/to/filename.ext'; // Example: http://adomain.com/content/image.jpg

$destination_folder = 'path/of/the/destination/folder';
//example: $_SERVER["DOCUMENT_ROOT"]."/content/files/"


// Execute the copy function
copy($file, $destination_folder.'/newFilaname.ext');
于 2013-11-05T08:51:37.357 に答える
-3

この機能を使用する

!move_uploaded_file($image_to_copy, $dir)

http://php.net/manual/en/function.move-uploaded-file.php

于 2012-09-01T13:27:30.553 に答える