【发布时间】:2011-11-27 07:17:58
【问题描述】:
在环顾数周后,我完全被书本上的教程弄糊涂了,我决定编写自己的 jQuery 上传脚本。我以为我可以让它工作,但我遇到了问题。我将列举它们:
在我写这篇文章的页面上,我放置了一个看起来有点像这样的 jQuery 脚本:
$(document).ready(function() {
var thumb = $('#thumb');
$('#profilepicinput').live('change', function(){
$("#preview").html('');
$("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$("#registerpt3").ajaxForm({
target: $('#registerpt3').attr('action')
}).submit();
});
$('#profilepicbutton').change(function(){
alert("Boy I hate PHP");
$.ajax({
type: "POST",
url: "register3.php",
success: function(msg) {
alert( "Data Saved: " + msg );
$.ajax({
type: "POST",
url: "retrievePic.php",
success: function(msg) {
var image = new Image();
$(image).load(function(){
console.log("we have uploaded this image");
}).attr('src', 'images/');
alert("AJAX Success!");
},
error: function(msg) {
alert(" didn't work");
}
});
},
error:function(msq){
alert("didn't work!: " + msg);
}
});
});
});
这会调用以下脚本,将图片加载到数据库中:
<?php
session_start();
$email = '';
if (isset($_SESSION['user_email'])) {
$email = $_SESSION['user_email'];
} else {
$email = 'dww2@pitt.edu';
}
$link = mysql_connect('censcoredFool.com', 'greetmeet', 'Maverick$41');
mysql_select_db(first_1) or die("Opps, You are pretty Got-Damned Stupid! Did you realize that?!?!?");
$target = './Uploads/';
$target = $target . basename( $_FILES['uploaded']['name']);
$ok = 1;
$path = "uploads/";
$Email = $_SESSION['user_email'];
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
$name = $_FILES['photoimg']['name'];
$size = $_FILES['photoimg']['size'];
if (strlen($name)) {
list($txt, $ext) = explode(".", $name);
if (in_array($ext,$valid_formats)) {
if ($size<(1024*1024)) { // Image size max 1 MB
$actual_image_name = time().$session_id.".".$ext;
$tmp = $_FILES['photoimg']['tmp_name'];
if (move_uploaded_file($tmp, $path.$actual_image_name)) {
mysql_query("insert into personal_photos (Email, Pics) values('$email', '$tmp')");
echo "<img src='uploads/".$actual_image_name."' class='preview'>";
} else {
echo "failed";
}
} else {
echo "Image file size max 1 MB";
}
} else {
echo "Invalid file format..";
}
} else {
echo "Please select image..!";
}
exit;
}
我所拥有的似乎都不起作用。我收到成功警报,但图片甚至没有上传。我猜PHP脚本一直运行,但没有抛出异常或任何东西。我如何让这个东西工作?
更新:运行 Firebug 后,我的 PHP 脚本没有获取图片 不知道为什么会这样。需要弄清楚 $_File 数据结构是如何工作的。
【问题讨论】:
-
很棒的错误信息。确保在将代码发送给客户时不要留下它们。
-
抱歉抱歉。只是在那儿和我兄弟开玩笑。
-
"环顾数周,完全被书本上的教程弄糊涂了,我决定编写自己的 jQuery 上传脚本。"我糊涂了。您无法让教程工作,所以您决定从头开始编写它?这似乎不是一个好主意。
标签: php jquery file-upload