2011-12-14 16 views
0

私は誰かが私を助けることができるかどうか疑問に思う。ファイルサイズの制限を設定メッセージ

私はPHPを書くのが比較的新しいので、私に同行してください。

私はインターネットで読んだことがあり、このサイトの@Marcioからいくつかの第一級のものを読んでいます。私は、ユーザーがイメージファイルをmySQLデータベースに保存できるスクリプトをまとめました。

アップロードできるファイルのサイズを制限してもう少し上がってきましたが、ファイルがアップロードできない理由を示す警告メッセージを追加したいと思います限界が設定されます。

以下のコードに示すように、私はこれを試みました。しかし残念なことに、私が追加した行に関連する予期しない '>'があることを示すエラーメッセージが表示されますが、これを別の方法でコーディングする方法はわかりません。

改訂カットダウンコード

<?php 

    // This function makes usage of 
// $_GET, $_POST, etc... variables 
// completly safe in SQL queries 
function sql_safe($s) 
{ 
    if (get_magic_quotes_gpc()) 
     $s = stripslashes($s); 

    return mysql_real_escape_string($s); 
} 

// If user pressed submit in one of the forms 
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
    if (!isset($_POST["action"])) 
    { 
     // cleaning title field 
     $title = trim(sql_safe($_POST['title'])); 

     if ($title == '') // if title is not set 
      $title = '(No title provided';// use (empty title) string 

     if (isset($_FILES['photo'])) 
     { 
      @list(, , $imtype,) = getimagesize($_FILES['photo']['tmp_name']); 
      // Get image type. 
      // We use @ to omit errors 

      if ($imtype == 3) // cheking image type 
       $ext="png"; // to use it later in HTTP headers 
      elseif ($imtype == 2) 
       $ext="jpeg"; 
      elseif ($imtype == 1) 
       $ext="gif"; 
      else 
       $msg = 'Error: unknown file format'; 

      if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb 
      {  
      $fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000 . " MB]</strong> is more than allowed 10MB Size.<br />";   

      } 

      if (!isset($msg)) // If there was no error 
      { 
       $data = file_get_contents($_FILES['photo']['tmp_name']); 
       $data = mysql_real_escape_string($data); 
       // Preparing data to be used in MySQL query 

       mysql_query("INSERT INTO {$table} 
           SET ext='$ext', title='$title', 
            data='$data'"); 

       $msg = 'Success: Image Uploaded'; 
      } 
     } 

私はちょうど誰かが、おそらくこれを見て、私は私が間違ってやっている知っていることができるかどうかを疑問に思いました。

感謝と種類について

+0

どのラインが故障して使用することができます:あなたはこの線に沿って何かを必要としますか?また、@を使用してデバッグのエラーを抑制しないでください。 – ajreal

答えて

0

あなたはこの

if($_FILES["fileupload"]["size"]/1024000 >= 10) // 10mb 
{ 
    $fileErrMsg = "<br />Your uploaded file size:<strong>[ ". $_FILES["fileupload"]["size"]/1024000 . " MB]</strong> is more than allowed 10MB Size.<br />"; 
    } 
+0

こんにちは、私の記事を見て返信してくれてありがとう。私はあなたが提案したコードを試しましたが、これはおそらく私の経験が不足している可能性があります。適切なメッセージを受け取るのではなく、ファイルサイズが制限を超えている場合でも、私はまだ「不明な形式」のメッセージを受け取ります。私はオリジナルのポストを改訂して新しいものを表示しました。私はあなたがおそらくこれを見て、私が間違っている場所を教えてくれるかどうか疑問に思っただけです。もう一度多くの感謝と親切に感謝します。 – IRHM

0

getfilesize()戻り画素の画像の寸法を、サイズがファイルではありません。

if (filesize($_FILES['tmp_name']) >= 100000) 
関連する問題