2016-09-15 3 views
0

파일 및 데이터를 캡처하고 PHP 파일에 업로드하는 데 문제가 있습니다. 나는 누군가가 어쩌면 내가 뭘 잘못하고 있는지 볼 수 있다면 내가 뭘 잘못하고 있는지 모르겠다. 그것은 문제 파일/이미지를 업로드하지 않습니다하지만 난 텍스트 입력을 추가 할 때 내가html 파일 및 텍스트 데이터를 PHP에 제출

<iframe name="my_iframe" src="" id="my_iframe"></iframe> 
<form action="http://www.********/upload11.php" method="post" enctype="multipart/form-data" target="my_iframe"> 
<input type="file" input id="input" name="image" /> 
<input type="text" name="Description" value="Image of Time"/> 
<div> 
<input type="submit" value="Send"> 
</div> 
</form> 

upload11.php 재판을 템플릿으로 사용하고 무엇을 여기에 작동하지 않습니다되어 게시

<?php 
$upload_image = $_FILES["image"][ "name" ]; 
$folder = "images/"; 
move_uploaded_file($_FILES["image"]["tmp_name"], "$folder".$_FILES["image"]["name"]);; 
$file = 'images/'.$_FILES["image"]["name"]; 
$uploadimage = $folder.$_FILES["image"]["name"]; 
$newname = $_FILES["image"]["name"]; 

$resize_image = $folder.$newname; 
list($width,$height) = getimagesize($uploadimage); 
$newwidth = 550; 
$newheight = 350; 
$thumb = imagecreatetruecolor($newwidth, $newheight); 
$source = imagecreatefromjpeg($resize_image); 
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
imagejpeg($thumb, $resize_image, 100); 
$out_image=addslashes(file_get_contents($resize_image)); 
$msg = ''; 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
$a = ('" alt="" />'); 
$b = ("'<img src=\"\https://www.******/images/".$_FILES['image']['name']."$a'"); 
$Description = $_POST['Description']; 
$image = $_FILES['image']['tmp_name']; 
$img = file_get_contents($image); 
$con = mysqli_connect('***','******','******','********'); 
$sql = "INSERT INTO links (hyper_links, link) VALUES ($b, $Description)"; 

$stmt = mysqli_prepare($con,$sql); 

mysqli_stmt_bind_param($stmt, "s",$img); 
mysqli_stmt_execute($stmt); 

$check = mysqli_stmt_affected_rows($stmt); 
if($check==1){ 
    $msg = 'Successfullly UPloaded'; 
}else{ 
    $msg = 'Could not upload'; 
} 
mysqli_close($con); 
} 
?> 
<?php 
echo $msg; 
?> 
+0

** error_reporting (E_ALL); **을 추가하여 이미지를 업로드하는 동안 오류를 확인하십시오. – Sunny

+0

내가 내 PHP 파일에 추가했지만, 내가 제출하면 그냥 업로드 할 수 없습니다. – INOH

+0

나는이 질문에 대한 내 대답을 살펴 보시기 바랍니다 : [전체 보안 이미지 업로드 스크립트] (http://stackoverflow.com/questions/38509334/full-secure-image-upload-script/38712921 # 38712921)이 스크립트는 업로드 스크립트와 보안에 대해 많은 것을 가르쳐 줄 것입니다. 텍스트 필드를 폼에 쉽게 추가하고 PHP로 처리 할 수 ​​있습니다. 이것은 전혀 문제가되지 않습니다. – icecub

답변

1

. 이것은 그것을 작동하게해야합니다.

<?php 

if(!empty($_FILES["image"])){ 
    $imgName = $_FILES["image"]["name"]; 
    $imgTmpName = $_FILES['image']['tmp_name']; 
    $upload_dir = "images/"; 

    if(move_uploaded_file($imgTmpName, $folder . basename($imgName))){ 
     $imgPath = $upload_dir . $imgName; 

     list($imgWidth, $imgHeight) = getimagesize($imgPath); 

     $newImgWidth = 550; 
     $newImgHeight = 350; 

     $thumbnailImg = imagecreatetruecolor($newImgWidth, $newImgHeight); 
     $originalImg = imagecreatefromjpeg($imgPath); 
     imagecopyresized($thumbnailImg, $originalImg, 0, 0, 0, 0, $newImgWidth, $newImgHeight, $imgWidth, $imgHeight); 

     imagejpeg($thumbnailImg, $imgPath, 100); 

     $mysqli = new mysqli("localhost", "user", "password", "database"); 

     if ($mysqli->connect_errno) { 
      echo "Failed to connect to MySQL: " . $mysqli->connect_error; 
     } 

     if($stmt = $mysqli->prepare("INSERT INTO links (hyper_links, link) VALUES (?, ?)")){ 
      if($stmt->bind_param("ss", $html, $descryption)){ 

       $html = "<img src=\"https://www.******/". $imgPath ."\">"; 
       $descryption = $_POST['Description']; 

       if($stmt->execute()){ 
        if($stmt->affected_rows > 0){ 
         echo "Successfully Uploaded"; 

         $stmt->close(); 
         $mysqli->close(); 
        } else { 
         echo "Could not upload"; 
        } 
       } else { 
        die("Execute() failed: " . htmlspecialchars($stmt->error)); 
       } 
      } else { 
       die("Bind_param() failed: " . htmlspecialchars($stmt->error)); 
      } 
     } else { 
      die("Prepare() failed: " . htmlspecialchars($stmt->error)); 
     } 
    } else { 
     die("Unable to move uploaded file to upload folder."); 
    } 
} else { 
    die("You did not select a file to upload."); 
} 

?> 

당신이 지금 무슨의 백업을 확인하고이 테스트 :하지 않으면 적어도 무슨 일이 일어나고 있는지에 대한 유용한 정보를 제공해야합니다. 어떻게 됐는지 알려줘.

+0

당신의 코드를 실행 하려다가 오류가 발생했다. '치명적인 오류 :/data/9/3/62/77/3714077/user/4129685/htdocs /에있는 mysqli_stmt :: affected_rows() upload01.php on line 35' – INOH

+0

이게 문제인지 모르지만 sqli가 아닌 mysql을 사용하고 있습니다 – INOH

+1

@INOH 작은 실수를했습니다. 그 오류는 이제 고쳐 져야합니다. 귀하의 질문에 : 아니 그건 중요하지 않습니다. – icecub

1

코드를 참조하면

$sql = "INSERT INTO links (hyper_links, link) VALUES ($b, $Description)"; 

그것은이

,536 같이해야한다 $ B와 $ 설명에 ''를 추가하는 것을 잊었다 이 작동
$sql = "INSERT INTO links (hyper_links, link) VALUES ('$b', '$Description')"; 

희망 :) 내가 반 스크립트가 모든 오류와 unnessesary 변수를 제거하기 위해 다시 작성했습니다

+1

그렇지 않습니다. 그는 셀렉터를 전혀 사용하지 않고 쿼리를 준비하고 있습니다. 그는 심지어 아무 의미가없는 매개 변수를 바인딩하려고합니다. 그 외에도 전체 스크립트에는 오류가 있습니다. 파일을 옮길 때'basename()'을 사용하지 않는 것 .. 두번째 줄에 ';;'등등. – icecub

+1

Btw : 질의를 준비 할 때 따옴표를 사용하지 않는 것이 실제로 좋은 것입니다 : P – icecub

+0

Nope! 나는이 @icecub에 동의하지 않았다. 쿼리를 준비하는 동안 따옴표를 추가하는 것을 잊었을 때 PHP 파일이 작동하지 않습니다. – Sunny

관련 문제