Javascript 使用ajax和php上载图像失败(无错误日志)
由于某种原因,我用来上传图像的以下代码失败了。。。 以下是HTMLJavascript 使用ajax和php上载图像失败(无错误日志),javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,由于某种原因,我用来上传图像的以下代码失败了。。。 以下是HTML <form id="image_upload" enctype="multipart/form-data" action="uploadImage.php" method="post" name="prof_picture"> <input id="image1" style="display:none;" name="image" accept="image/jpeg" type="file">
<form id="image_upload" enctype="multipart/form-data" action="uploadImage.php" method="post" name="prof_picture">
<input id="image1" style="display:none;" name="image" accept="image/jpeg" type="file">
<input id="image2" value="Submit" type="submit" style="display:none;">
</form>
我所知道的肯定是:
1º正确实现了php脚本,因为我故意使部分代码失败,并获得了有关内部php错误的错误消息
2º查询正确完成(或至少通过其语法)
3º与#image相关的javascript函数也在工作
我只想上传一张用户选择的图片(即使他选择了100个其他项目)。但正如我所说,我甚至没有在日志上得到错误消息。。。关于这个有什么想法吗?多谢各位
编辑 我对代码做了一些修改
$ext = strtolower($ext);
if(in_array($ext,$valid_formats)){
if ($size < (MAX_SIZE*1024)){
$image_name=time().$user_id."--pfi-".$filename;
$newname=$uploaddir.$image_name;
if (move_uploaded_file($_FILES['image']['tmp_name'], $newname)){
mysql_query("UPDATE table SET image='$image_name' WHERE id='$user_id'");
}else echo '<span class="imgList">This message appears </span>';
}else echo '<span class="imgList">You have exceeded the size limit!</span>';
}else echo '<span class="imgList">Unknown extension!</span>';
编辑2 警告: 移动上传的文件(profile/uploads/1388794617.png): 无法打开流:中没有此类文件或目录 第37行的profile/uploadProfilePicture.php 警告:移动上传的文件():无法将“/tmp/phppFfoL4”移动到 中的“profile/uploads/1388794617.png” 第37行的profile/uploadProfilePicture.php 如何指定$uploaddir甚至$newname?Edit 这是我用过的。注意注释掉的条件语句
<?php
// include('../sqlconnection.php');
define ("MAX_SIZE","1000000000");
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
// if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
// {
$uploaddir = "profile/uploads/"; //Image upload directory
$filename = stripslashes($_FILES['image']['name']);
echo $filename;
$size=filesize($_FILES['image']['tmp_name']);
echo $filename;
//Convert extension into a lower case format
$ext = getExtension($filename);
$ext = strtolower($ext);
//File extension check
if(in_array($ext,$valid_formats))
{
//File size check
if ($size < (MAX_SIZE*1024))
{
$image_name=time().$filename;
echo "<img src='".$uploaddir.$image_name."' class='imgList'>";
$newname=$uploaddir.$image_name;
//Moving file to uploads folder
if (move_uploaded_file($_FILES['image']['tmp_name'], $newname))
{
$time=time();
//Insert upload image files names into user_uploads table
// mysql_query("UPDATE table SET image='$image_name' WHERE id='$user_id'");
}
else
{
echo '<span class="imgList">failed</span>'; }
}
else
{
echo '<span class="imgList">failed</span>';
}
}
else
{
echo '<span class="imgList">failed</span>';
}
// }
试试
$uploaddir=“profile/uploads/”代码>如果isset($\U POST)指出任何表单提交。考虑到这是指向此脚本的唯一形式,因此不会有任何其他问题(当然,这并不像应该的那样安全,感谢您指出这一点)。&&关于这一点,你也是对的,但我想,我现在突然想到了。正如保罗提到的,在结尾添加一个/
。很可能就是这个问题。我以前见过这种情况,它不会显示错误消息,但却没有上传任何东西。@Paul刚才试过,但实际上没有。这可能是调试尝试的早期缺陷。很抱歉,我删除了我的评论,因为我认为这没有什么不同。不客气,就是这样!!但不幸的是,它没有上传。请检查编辑,我会给你正确的答案(确实如此!)我注释掉了DB的东西来测试它,所以这可能是错误的地方@如果我记得的话,我还注释掉了if(isset($\u POST)和$\u服务器['REQUEST\u METHOD']==“POST”)
。我将添加到我的问题中,确切地说,我使用了什么作为编辑。它是否确实在if中运行?如果它通过了每一个If,那么这个问题就不应该存在了。。。它甚至没有到达查询,所以在if-move\u-uploaded\u文件中不能正常工作很奇怪是的,我的编辑是我使用的,正如所示,我没有偏离它。我只评论了我不需要的东西(DB)以及我认为会麻烦的东西;条件语句if(isset($\u POST)和$\u SERVER['REQUEST\u METHOD']==“POST”)
@user111671我取出的另一个东西都是表单中的style=“display:none;”
。我看不到按钮,因为你可能以一种特殊的方式使用它们@用户111671
$ext = strtolower($ext);
if(in_array($ext,$valid_formats)){
if ($size < (MAX_SIZE*1024)){
$image_name=time().$user_id."--pfi-".$filename;
$newname=$uploaddir.$image_name;
if (move_uploaded_file($_FILES['image']['tmp_name'], $newname)){
mysql_query("UPDATE table SET image='$image_name' WHERE id='$user_id'");
}else echo '<span class="imgList">This message appears </span>';
}else echo '<span class="imgList">You have exceeded the size limit!</span>';
}else echo '<span class="imgList">Unknown extension!</span>';
array(1) { ["image"]=> array(5) { ["name"]=> string(21) "060424_hubble_big.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpZYaDkm" ["error"]=> int(0) ["size"]=> int(35641) } }
<?php
// include('../sqlconnection.php');
define ("MAX_SIZE","1000000000");
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
// if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
// {
$uploaddir = "profile/uploads/"; //Image upload directory
$filename = stripslashes($_FILES['image']['name']);
echo $filename;
$size=filesize($_FILES['image']['tmp_name']);
echo $filename;
//Convert extension into a lower case format
$ext = getExtension($filename);
$ext = strtolower($ext);
//File extension check
if(in_array($ext,$valid_formats))
{
//File size check
if ($size < (MAX_SIZE*1024))
{
$image_name=time().$filename;
echo "<img src='".$uploaddir.$image_name."' class='imgList'>";
$newname=$uploaddir.$image_name;
//Moving file to uploads folder
if (move_uploaded_file($_FILES['image']['tmp_name'], $newname))
{
$time=time();
//Insert upload image files names into user_uploads table
// mysql_query("UPDATE table SET image='$image_name' WHERE id='$user_id'");
}
else
{
echo '<span class="imgList">failed</span>'; }
}
else
{
echo '<span class="imgList">failed</span>';
}
}
else
{
echo '<span class="imgList">failed</span>';
}
// }
include('../sqlconnection.php');
define ("MAX_SIZE","1000");
function getExtension($str)
{
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$valid_formats = array("jpg", "png", "gif", "bmp","jpeg");
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$uploaddir = "profile/uploads"; //Image upload directory
$filename = stripslashes($_FILES['image']['name']);
echo $filename;
$size=filesize($_FILES['image']['tmp_name']);
echo $filename;
//Convert extension into a lower case format
$ext = getExtension($filename);
$ext = strtolower($ext);
//File extension check
if(in_array($ext,$valid_formats))
{
//File size check
if ($size < (MAX_SIZE*1024))
{
$image_name=time().$filename;
echo "<img src='".$uploaddir.$image_name."' class='imgList'>";
$newname=$uploaddir.$image_name;
//Moving file to uploads folder
if (move_uploaded_file($_FILES['image']['tmp_name'], $newname))
{
$time=time();
//Insert upload image files names into user_uploads table
mysql_query("UPDATE table SET image='$image_name' WHERE id='$user_id'");
}
else
{
echo '<span class="imgList">failed</span>'; }
}
else
{
echo '<span class="imgList">failed</span>';
}
}
else
{
echo '<span class="imgList">failed</span>';
}
}