2015-06-27 34 views
0

我正在使用jquery filedialog加载图像文件。然后发送一个ajax请求到一个php文件上传图像到数据库。 这里是正在发送图像上传到mysql数据库不工作

$("#imgfile").on("change",function(e){ 
        var file_data = $('#imgfile').prop('files')[0]; 
       e.preventDefault(); 
       var form_data = new FormData();     
       form_data.append('file', file_data); 
       //alert(form_data); 
       $.ajax({ 
      url: 'changeProfileImg.php', // point to server-side PHP script 
      contentType: "image/jpeg", // what to expect back from the PHP script, if anything 
      cache: false, 
      dataType: "image", 
      processData: false, 
      data: form_data,       
      type: 'post', 
      success: function(php_script_response){ 
       alert(php_script_response); // display response from the PHP script, if any 
      } 
      }); 
       }); 

我的Ajax请求这是我的PHP代码

include_once 'dbconnect.php'; 
    if (0 < $_FILES['file']['error']) { 
     echo 'Error: ' . $_FILES['file']['error'] . '<br>'; 
    } 
    else { 
     //move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); 
     $file=$_FILES['file']['name']; 
     $id=$_SESSION['id']; 
     $sql="UPDATE mainadmin set photo='$file' where id='$id'"; 
     mysql_query($sql); 
     echo 'success'; 
     $_SESSION['photo']=$file; 
    } 

但我看到一些garbase事情被插入到数据库中不显示图像。我怎么能做到这一点。

+0

你就错了。阅读本[教程](http://onlinephpguide.com/php-file-upload) –

+0

我想上传到数据库而不是服务器上的文件夹 –

+0

你能帮我指出这个错误吗?我没有找到它 –

回答

1

请参阅下面的网址和代码我认为这对您有所帮助。

Simple jQuery progress bar percentage

这是进度条百分比

但你可以管理或修改按您的要求我测试的代码文件上传。

<!doctype html> 
<head> 
<title>File Upload Progress Demo #1</title> 
<style> 
body { padding: 30px } 
form { display: block; margin: 20px auto; background: #eee; border-radius: 10px; padding: 15px } 

.progress { position:relative; width:400px; border: 1px solid #ddd; padding: 1px; border-radius: 3px; } 
.bar { background-color: #B4F5B4; width:0%; height:20px; border-radius: 3px; } 
.percent { position:absolute; display:inline-block; top:3px; left:48%; } 
</style> 
</head> 
<body> 
    <h1>File Upload Progress Demo #1</h1> 
    <code>&lt;input type="file" name="myfile"></code> 
     <form action="upload.php" method="post" enctype="multipart/form-data"> 
     <input type="file" name="uploadedfile"><br> 
     <input type="submit" value="Upload File to Server"> 
    </form> 

    <div class="progress"> 
     <div class="bar"></div > 
     <div class="percent">0%</div > 
    </div> 

    <div id="status"></div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
<script src="http://malsup.github.com/jquery.form.js"></script> 
<script> 
(function() { 

var bar = $('.bar'); 
var percent = $('.percent'); 
var status = $('#status'); 

$('form').ajaxForm({ 
    beforeSend: function() { 
     status.empty(); 
     var percentVal = '0%'; 
     bar.width(percentVal) 
     percent.html(percentVal); 
    }, 
    uploadProgress: function(event, position, total, percentComplete) { 
     var percentVal = percentComplete + '%'; 
     bar.width(percentVal) 
     percent.html(percentVal); 
    }, 
    complete: function(xhr) { 
    bar.width("100%"); 
    percent.html("100%"); 
     status.html(xhr.responseText); 
    } 
}); 

})();  
</script> 

</body> 
</html> 

我的PHP代码

<?php 
$target_path = "uploads/"; 

$target_path = $target_path . basename($_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 
?>