2017-07-28 4 views
0

アップロードファイルフォームの更新に問題があります。初めて私がアップロードファイルをアップロードすると、サーバー上のファイル(フォルダのアップロード/)とパス名のアップロードがmysqlベース(テーブル 'ファイル')にアップロードされます。そのページをリフレッシュすると、mysqlベースで同じパス名が複製されますが、uploads /にファイルは複製されません。私は同じような解決策を見つけましたが、私の場合ではなく、同じページにとどまり、アップロードされたすべてのファイルをリストする必要があります。ここでは、フォームのコードは次のとおりです。ブラウザをリフレッシュすると、フォームをmysqlにアップロードします。

<?php 
 

 
if(isset($_POST['upload'])){ 
 
$targetfolder = "uploads/"; 
 
$target_file = $targetfolder . basename($_FILES['file']['name']) ; 
 
$ok=1; 
 
$file_name = $_FILES['file']['name']; 
 
$file_type=$_FILES['file']['type']; 
 

 
if ($file_type=="application/pdf" || $file_type=="image/gif" || $file_type=="image/jpeg" || $file_type== "application/msword" || $file_type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ) { 
 

 
if ($ok == 0) { 
 
    echo "Sorry, your file was not uploaded."; 
 
} else { 
 
    if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { 
 
     $sql = "INSERT INTO files (path, profesor, struka) VALUES ('" .$file_name. "', '". $_SESSION['username']. "','')"; 
 
\t \t \t if (mysqli_query($link, $sql)){ 
 
\t \t \t \t }else {echo "ERROR connecting database $sql".mysqli_error($link); 
 
\t \t \t \t \t } 
 
\t \t 
 
    } else { 
 
     echo "Sorry, there was an error uploading your file."; 
 
    } 
 
}} 
 

 
else { 
 

 
echo "Sorry only PDF, DOCX, JPEG, GIF.<br>"; 
 
}} 
 
?> 
 

 
<div class = "upload"> 
 

 
<form method="post" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
 
    Select file for upload:</br> 
 
    <input type="file" name="file" > 
 
    <input type="submit" id = "button_upload" value="Upload File" name="upload"> 
 
</form> 
 

 
</div>

答えて

0

最初、私はあなたが実際にアップロードされたファイルの一覧を表示し、あなたのコード内の場所を、表示されません。

2番目 - ページを更新すると、もう一度フォームが送信されるため、別の挿入が同じデータで行われます。重複したファイルは上書きされているので表示されません。

これで、正常に挿入してアップロードした後、同じページにリダイレクトする必要があります(例:header( 'Location:yourscript.php'))。この場合、POSTは設定されません。

+0

リストが大文字小文字ではありませんでしたが、私の問題を解決したので、コードが長すぎるようにはしませんでした。どうもありがとう。パームスアップ。 – kapandzic

関連する問題