0

私はこのようなフォームを持っています:

<form method="post" enctype="multipart/form-data">
 <input type="text" id="title" placeholder="Project Title"/><br />
 <input type="text" id="vurl" placeholder="If You have any video about project write your video url path here" style="width:435px;"/><br />
<textarea id="prjdesc" name="prjdesc" rows="20" cols="80" style="border-style:groove;box-shadow: 10px 10px 10px 10px #888888;"placeholder="Please describe Your Project"></textarea>

<label for="file">Filename:</label>
<input type="file" name="file" id="file" /><br>
<input type="button" name="submit" value="Submit" id="update"/>
</form>

送信をクリックすると、データがデータベースに保存され、Ajax 呼び出しを使用して表示されます。これは私の js コードです。

$("#update").click(function(e) {
      alert("update");
      e.preventDefault();
      var ttle = $("#title").val();
      alert(ttle);
      var text = $("#prjdesc").val(); 
      var vurl = $("#vurl").val();
      var img = $("#file").val();
      alert(vurl);
      var dataString = 'param='+text+'&param1='+vurl+'&param2='+ttle+'&param3='+img;
      $.ajax({
        type:'POST',
        data:dataString,
        url:'insert.php',
        success:function(id) {
          alert(id);
          window.location ="another.php?id="+id;;
        }
      });
    });

ここでは、insert.php を使用してデータを保存し、another.php を使用して表示していますが、画像の部分に来ると、画像をフォルダーに保存し、パスを db に保存する方法がわかりません。つまり、insert.php にコードを統合するのに少し混乱しています。

insert.php

$host="localhost";
$username="root";
$password="";
$db_name="geny";
$tbl_name="project_details";


mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

 $name = $_POST['param'];
 $video = $_POST['param1'];
 $title = $_POST['param2'];
 $sql="INSERT INTO $tbl_name (title, content, video_url) VALUES ('$title','$name','$video')";

 if(mysql_query($sql)) {
echo mysql_insert_id();

 } else {
  echo "Cannot Insert";
 }

分離すると、画像はフォルダーに保存されます..

分離する場合、フォームコードは次のとおりです。

    <form action="upload_file.php" method="post"
  enctype="multipart/form-data">
    <label for="file">Filename:</label>
     <input type="file" name="file" id="file"><br>
     <input type="submit" name="submit" value="Submit">
     </form>

upload_file.php:

<?php
 $allowedExts = array("gif", "jpeg", "jpg", "png");
 $extension = end(explode(".", $_FILES["file"]["name"]));
 if ((($_FILES["file"]["type"] == "image/gif")
 || ($_FILES["file"]["type"] == "image/jpeg")
 || ($_FILES["file"]["type"] == "image/jpg")
 || ($_FILES["file"]["type"] == "image/pjpeg")
 || ($_FILES["file"]["type"] == "image/x-png")
 || ($_FILES["file"]["type"] == "image/png"))
    && ($_FILES["file"]["size"] < 50000)
    && in_array($extension, $allowedExts))
  {
 if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
 else
{
   echo "Upload: " . $_FILES["file"]["name"] . "<br>";
   echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

if (file_exists("C:/wamp/www/WebsiteTemplate4/upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "C:/wamp/www/WebsiteTemplate4/upload/" . $_FILES["file"]["name"]);
 // echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  $tmp = "C:/wamp/www/WebsiteTemplate4/upload/" . $_FILES["file"]["name"];
  echo $tmp;
  }
  }
}
else
 {
 echo "Invalid file";
 }
?>

これは完全に機能しています...

私の質問は、このコードをinsert.phpに統合する方法です...助けてください...

4

3 に答える 3

0

送信ボタンがクリックされた後にinsert.phpを呼び出す方法を意味する場合、この行で

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

これを追加する必要があります

<form method="post" enctype="multipart/form-data" action="insert.php">
于 2014-08-05T16:24:48.677 に答える
-1
<?php

/*dont use path like this C:/wamp/www/WebsiteTemplate4/upload/ becuase you are working at localhost server*/
if (file_exists("upload/" . $_FILES["file"]["name"])){

    echo $_FILES["file"]["name"] . " already exists. ";

}else{

    $file = $_FILES["file"]["name"]
    $filePath = "upload/" . $file;
    if(move_uploaded_file($_FILES["file"]["tmp_name"], $filePath)){

        /*prepare sql query here and insert*/
        $sql = "INSERT INTO table_name(field1, field2) VALUES('$field1', '$field2');";
        if(mysql_query($sql)){

            echo "File saved in database successfully <strong>{$filePath}</strong>";

        }else{

            echo "File not uploaded there are an error <strong>{$filePath}</strong>";

        }


    }else{

        echo "File not uploaded there are an error <strong>{$file}</strong>";

    }


} ?>

疑問がある場合、またはコードが正常に機能しない場合は、このコードを試してから、もう一度質問してください。ありがとう

于 2013-06-05T11:14:53.300 に答える