PHPでファイルアップロードと削除を行わせる

php

これをAjaxで行いたいんだ!

<style> 
 .styled {
    border: 0;
    line-height: 2.5;
    padding: 0 20px;
    font-size: 1rem;
    text-align: center;
    color: #fff;
    text-shadow: 1px 1px 1px #000;
    border-radius: 10px;
    background-color: rgba(220, 0, 0, 1);
    background-image: linear-gradient(to top left,
                                      rgba(0, 0, 0, .2),
                                      rgba(0, 0, 0, .2) 30%,
                                      rgba(0, 0, 0, 0));
    box-shadow: inset 2px 2px 3px rgba(255, 255, 255, .6),
                inset -2px -2px 3px rgba(0, 0, 0, .6);
}

.styled:hover {
    background-color: rgba(255, 0, 0, 1);
}

.styled:active {
    box-shadow: inset -2px -2px 3px rgba(255, 255, 255, .6),
                inset 2px 2px 3px rgba(0, 0, 0, .6);
}
</style>

<?php
echo "<p><a href='up.html'>FileUpload</a></p>";
$rep = 1; // 最終更新日(表示=1 非表示=0)
$sze = 1; // ファイルサイズ(表示=1 非表示=0)
$lst = "./updir"; // 表示するリストの名前(パス)

// ディレクトリハンドルの取得
$udir = "./updir/";
$dir_h = opendir( $udir ) ;
 
// ファイル・ディレクトリの一覧を $file_list に
while (false !== ($file_list[] = readdir($dir_h))) ;
closedir( $dir_h ) ;
 
$file_list2 = array() ;
 
$i = 0 ;
foreach ( $file_list as $file_name )
{
 //ファイルのみを表示
  if( is_file( $udir.$file_name))
  {
    //$file_list2[N] の [0]にファイル名、[1]にファイル更新日
    $file_list2[$i][0] = $file_name ;
    // ファイルの更新日時を取得
    $file_list2[$i][1] = date("Y/m/d H:i", filemtime( $udir.$file_name )) ;
    $i++ ;
  }
}
 
// $file_list2 をファイルの更新日時でソート
usort($file_list2, "order_by_desc") ;
 
// 出力
//print_r($file_list2) ;

echo "<form method='post' action='delFileExecuter.php' >";
echo "<table border='1' cellspacing ='0' cellpadding='4' bordercolor='gray'>";

for( $j = 0;$j<$i;$j++)
{
  $u = $file_list2[$j][0];
  $dfl = filesize($udir.$u);
  $sz = round($dfl/1024);
  echo "<tr><td><input type='checkbox' name='deletefile[]' value='".$udir.$u."'>";
  echo "<a href=".$udir.$u.">".$u."</a></td>";
  echo "<td><FONT size='-1'>(".$file_list2[$j][1].") ".$sz."KB<br/>";
  echo "</FONT size></td></tr>";
} 
print("</table>");
echo"<br />";
echo "<button class='favorite styled' type='submit'> Delete</button>";
echo "</form>";
?>

<?php
// 引数 $file_list2 配列の[N][1] でソートする関数
function order_by_desc($a, $b)
{
  if ( strtotime($a[1]) > strtotime($b[1]) )
  {
    return -1;
  }
  else if(strtotime($a[1]) < strtotime($b[1]))
  {
    return 1;
  }
  else
  {
  return 0;
  }
}
?>
<?php
$upload = "./updir/"; //-- ここは、このプログラムの置き場所でいいのだ。 パーミッション 777 でないとパーミションエラーではねられる? 

// アップロードが正常に行われたかチェック
if ( $_FILES['filename']['error'] == UPLOAD_ERR_OK )
{
    // アップロード先とファイル名を付与
    $upload_file = $_FILES["filename"]["name"];

    //print_r($upload_file ."<br>");
    //print_r($_FILES['filename'].'<br>');
    //echo "<br><br>";
    //var_dump($_FILES['filename']);
    //echo "<br><br>";

    // アップロードしたファイルを指定のパスへ移動
    if ( move_uploaded_file( $_FILES["filename"]['tmp_name'], $upload.$upload_file ) )
    {
        // パーミッションを変更
        // Read and write for owner, read for everybody
        //chmod($upload_file, 0644);
    }
    echo "アップしました<br>";
    echo "<a href='index.php'>Home</a>";
}
?>
<?php
$dir="./updir/"; //ファイルを保存しているディレクトリー

//フォームのチェックボックスがチェックされていたら処理
if(!empty ($_POST["deletefile"]))
{ 
    $deletefiles=$_POST["deletefile"];
    foreach($deletefiles as $dfile)
    {
       echo $dfile."<br />";
       if(file_exists($dfile))
       {
           echo"削除しました";
           unlink($dfile);
       }
    }
}
else
{
    $error="何もチェックされてません";
}
echo"<br /><a href='./index.php'>メニュー</a>";
?>
No tags for this post.
タイトルとURLをコピーしました