2011-11-14 8 views
0

jpgraphを使用して処理されたデータファイルをアップロードできるWebサイトを作成する必要があります。このファイルは、analfile.shというbashスクリプトで解析されます。 bashスクリプトは次のようになります。動的ファイル名でfopenが動作しない

#!/bin/bash 

file=$1 
fecha=`date +%s` 
mv $1 $fecha.dat 
echo $fecha.dat 

したがって、名前が1321290921.datの別のファイルが戻されます。それは私がプロットする必要があるファイルです。

この私の現在のPHPコード:

$target_path = "/home/myhome"; 
$target_path = $target_path . basename($_FILES['rdata']['name']); 
$target_file = basename($_FILES['rdata']['name']); 

if(move_uploaded_file($_FILES['rdata']['tmp_name'], $target_path)) { 
    echo "The file ". $target_file. " has been uploaded";  
    chdir('/home/myhome');  
    $filetoplot=shell_exec('./analfile.sh'.' '.$target_file);  
} else{  
    echo "There was an error uploading the file, please <a href=\"index.html\">try again! 
</a>"; 
} 

//$filetoplot="1321290921.dat" 
echo "<br>The file to be opened is ". $filetoplot. "<br>"; 

if ($file_handle = fopen("$filetoplot", 'r')) {  
    while ($line_of_text = fgets($file_handle)) { 
    $parts = explode('.', $line_of_text); 
    echo $line_of_text ; 
    print $parts[0] . $parts[1]. $parts[2]. "<br>"; 
    } 
fclose($file_handle);  
} 

私が読んで、ターゲットディレクトリに書き込み権限を持っています。私は、$ filetoplot = "1321290921.dat"という行のコメントを外すと、スクリプトが完璧に動作することが不思議に思う。私はこれはPHPで私の最初のコードですので、私は何かばかげてやっていると思うが、数時間後に私は解決策を見つけることができませんでした。

ご協力いただければ幸いです。

+1

PHPをセーフモードで実行していないことを再度確認します。 –

答えて

0

私が見ている最初のことは、パスが/home/myhome/fooではなく/home/myhomefooのように、ホームパスにスラッシュ(/)を追加しないことです。

$target_fileも先に移動して、$target_path以内に再利用する必要があります。同じことを2回行う理由はありません。

それでも問題が解決しない場合は、次に進むべきことがわかります。

関連する問題