2017-06-06 15 views
0

如果用戶在「media_type」文本框中輸入「0」,它將運行圖像上傳代碼,如果您將「1」運行視頻上傳代碼。問題在於視頻部分,因爲當我上傳視頻時,它不顯示任何內容。但是,當我輸入圖像,並轉到圖像部分,它的工作原理。這裏是我的代碼上傳/保存不在PHP中工作的視頻

PHP

<?php 

if(isset($_POST['submit'])){ 

    $media_type = addslashes($_POST['media_type']); 

    if($media_type !=0 && $media_type !=1){ 

     die (json_encode([ 
     "Status" => " Failed", 
     "Message" => " Error 404" 
    ])); 
     exit; 
    } 

    if(@getimagesize($_FILES["file"]["tmp_name"])==false){ 

     echo json_encode([ 

      "Status" => " Failed", 
      "Message" => " No file selected..." 
     ]); 
     exit; 
    } 

    if(@getimagesize($_FILES['file']['tmp_name']) ==FALSE || $_POST['user_id'] == "" || $_POST['media_type'] =="" || $_POST['category1'] ==""){ 

     echo json_encode([ 
      "Status" => "Failed", 
      "Message" => "There were values missing" 

     ]); 

    die(""); 
    } 


function imageUpload(){ 
    $userid = addslashes($_POST['user_id']); 
    $category1 = addslashes($_POST['category1']); 
    $category2 = addslashes($_POST['category2']); 
    $category3 = addslashes($_POST['category3']); 


//if file is there 

    $target = "images/"; 

    $target_file = addslashes($target . basename($_FILES["file"]["name"])); 

    if(file_exists($target_file)){ 

     echo json_encode([ 
      "Status" => " Failed", 
      "Message" => " Sorry, file already exists..." 
     ]); 
     exit; 
    } 
if(move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) 
{ 

    $db = mysqli_connect("localhost", "root", ""); 
    mysqli_select_db($db, "magicsever"); 

    if(mysqli_connect_error()){ 

     die ("Database connection error"); 
    } 

$image = addslashes($_FILES['file']['tmp_name']); 
$name = addslashes($_FILES['file']['name']);  

$sql = "INSERT INTO classified_images (`user_id`,`image`, `img_path`, `img_category_1`,`img_category_2`, `img_category_3`)VALUES('$userid','$image','$name','$category1','$category2','$category3')"; 
$final = mysqli_query($db, $sql); 

echo json_encode([ 
"Message" => "The file ". basename($_FILES["file"]["name"]). " has been uploaded.", 
"Status" => "OK", 
"userId" => $_POST["user_id"] 
]); 
}else{ 

echo json_encode([ 
"Message" => "Sorry, there was an error uploading your file.", 
"Status" => "Error", 
"userId" => $_POST["user_id"] 
]); 

} 
} 

function videoUpload(){ 
    $userid = addslashes($_POST['user_id']); 
    $category1 = addslashes($_POST['category1']); 
    $category2 = addslashes($_POST['category2']); 
    $category3 = addslashes($_POST['category3']); 
    // Check if file was submited 

    $target = "videos/"; 

    $target_file = addslashes($target . basename($_FILES["file"]["name"])); 



    // Check if file already exists 
    if(file_exists($target_file)){ 

     echo json_encode([ 
      "Status" => " Failed", 
      "Message" => " Sorry, file already exists..." 
     ]); 
     exit; 
    } 

    // Check file size not > 500Mb 
    if($_FILES["file"]["size"] > 500000000){ 

     echo json_encode([ 

      "Status" => " Failed", 
      "Message" => " Sorry, file is too large." 
     ]); 
     exit; 
    } 

     if(move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)){ 

      $db = mysqli_connect("localhost", "root", ""); 
    mysqli_select_db($db, "magicsever"); 

    if(mysqli_connect_error()){ 

     die ("Database connection error"); 
    } 

    $video = addslashes($_FILES['file']['tmp_name']); 
     $name = addslashes($_FILES['file']['name']); 

    $sql = "INSERT INTO classified_videos (`user_id`, `vid_path`, `vid_category_1`, `vid_category_2`, `vid_category_3`, `video`)VALUES('$userid','$name','$category1','$category2','$category3','$video')"; 
    $final = mysqli_query($db, $sql); 

      echo json_encode([ 

       "Status" => " Success", 
       "Message" => " The file ". basename($_FILES["file"]["name"]). " has been uploaded.", 
       "userId" => $_POST["user_id"] 
      ]); 
     }else{ 

      echo json_encode([ 

       "Status" => " Failed", 
       "Message" => " Sorry, there was an error uploaded your file" 
      ]); 
      exit; 
     } 

    //Connect to database 


} 
    if($media_type ==0){ 

     imageUpload(); 
    }else if($media_type ==1){ 

     videoUpload(); 
    } 
} 
?> 

HTML

<form method="post" enctype="multipart/form-data"> 

<input type="file" name="file"> 

<br></br> 
<input type="text" name="user_id" placeholder="User id..."> 
<br></br> 
<input type="text" name="media_type" placeholder="(0)Image...(1)Video"> 
<br></br> 
<input type="text" name="category1" placeholder="MediaTag#1..."> 
<br></br> 
<input type="text" name="category2" placeholder="MediaTag#2..."> 
<br></br> 
<input type="text" name="category3" placeholder="MediaTag#3..."> 
    <br></br> 
<input type="submit" name="submit" value="upload"> 


</form> 

回答

1

圖像交叉2MB上傳大小,如果你已上傳超過2MB的數據更增加從php.ini文件大小「文件上傳大小」

+0

謝謝你,我研究了更多,發現這個鏈接https://stackoverflow.com/questions/14734184/why-wont-my-server-accept-files-larger-then-2mb哪幫助 – Jagr

1

在視頻的情況下,你的圖像尺寸控制總是提供虛假(或無意義的值):

if(@getimagesize($_FILES["file"]["tmp_name"])==false){ 

這就是您收到「No file selected」消息的原因。 檢查您是否獲得視頻或圖像,並在恰當的情況下運行該控件。

正如你可以在文檔中getimagesize()閱讀:

注意 該函數要求文件名是一個有效的圖像文件。如果提供非圖像文件,則可能會將其錯誤地檢測爲圖像,並且該函數將成功返回,但該數組可能包含無意義的值。

+0

喔所以,問題是「和getimagesize」的大小?我刪除它,我仍然有問題。 – Jagr

+0

肯定你有一個getimagesize()作爲說明文檔的問題。我也測試了腳本並上傳了一個文件,mp4總是給出錯誤。我看到你還有一個你已經修復的大小上傳問題。下次請提供您獲得的幫助社區瞭解您的問題的錯誤。 –

+0

對不起,但謝謝 – Jagr