PHP图像上传:作为一个单独的例子工作,但不是从我的项目代码
我有一个最简单的图片上传案例。当我把它作为一个单独的例子运行时,它确实起作用了。当我将相同的.js代码合并到我的项目的javascript代码中,并尝试从我的html页面上传(.js和.php代码相同,id和名称调整等)时,它就不起作用了 html: php:PHP图像上传:作为一个单独的例子工作,但不是从我的项目代码,php,image,upload,Php,Image,Upload,我有一个最简单的图片上传案例。当我把它作为一个单独的例子运行时,它确实起作用了。当我将相同的.js代码合并到我的项目的javascript代码中,并尝试从我的html页面上传(.js和.php代码相同,id和名称调整等)时,它就不起作用了 html: php: 尝试从项目上载时从服务器收到的消息: POST-->POST: Source -----------------------------2656620091882 Content-Disposition: form-data;
尝试从项目上载时从服务器收到的消息:
POST-->POST:
Source
-----------------------------2656620091882 Content-Disposition: form-data; name="images[]"; filename="dock_2.jpg" Content-Type: image/jpeg ÿØÿáa"Exif��MM�*��
etc.
POST-->RESPONSE:
<br />
<b>Notice</b>: Undefined index: images in <b>C:\XAMPP\htdocs\Projects\DockMapper\add_edit_upload_images.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>C:\XAMPP\htdocs\Projects\DockMapper\add_edit_upload_images.php</b> on line <b>3</b><br />
<h2>Successfully Uploaded Images</h2>
POST-->发布:
来源
-----------------------------2656620091882内容处理:表单数据;name=“images[]”;filename=“dock_2.jpg”内容类型:image/jpegØÿáa“Exif��嗯�*��
等
后-->响应:
注意:未定义索引:第3行的C:\XAMPP\htdocs\Projects\DockMapper\add\u edit\u upload\u images.php中的图像
警告:为C:\XAMPP\htdocs\Projects\DockMapper\add\u edit\u upload\u images.php第3行中的foreach()提供的参数无效
已成功上载图像
似乎有东西被发送到了服务器,但服务器上没有收到。当我运行:print\r($\u FILES)时,数组是空的。我大概花了两天的时间才发现问题。有什么建议吗?非常感谢。使用这个
例如
Jquery
PHP
好的,这就是问题所在:
在我的项目的html文件中,jquery包含在标题中,包含以下行:
<head>
...
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
...
</head>
...
...
当我删除这些行,并且在页脚中只包含以下ajax库时,它就起作用了:
<html>
<body>
...
</body>
...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
...
</html>
...
...
...
谢谢Haru。我确实尝试过你的代码-它单独运行很好,但是当我将它插入到.js文件中时,我遇到了同样的问题。该文件似乎被发送到了服务器(在这两种情况下,上传几MB的文件需要相同的时间)。我正在上传到完全相同的“/uploads”文件夹,这意味着文件夹权限是相同的。只是在这种情况下,它说:“未定义的索引:C:\XAMPP\htdocs\…\upload1.php中的文件在第3行等等。而在我的情况下,未定义的索引和for循环是关于图像[]。我不知道这会是什么。这让我发疯。
POST-->POST:
Source
-----------------------------2656620091882 Content-Disposition: form-data; name="images[]"; filename="dock_2.jpg" Content-Type: image/jpeg ÿØÿáa"Exif��MM�*��
etc.
POST-->RESPONSE:
<br />
<b>Notice</b>: Undefined index: images in <b>C:\XAMPP\htdocs\Projects\DockMapper\add_edit_upload_images.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: Invalid argument supplied for foreach() in <b>C:\XAMPP\htdocs\Projects\DockMapper\add_edit_upload_images.php</b> on line <b>3</b><br />
<h2>Successfully Uploaded Images</h2>
$('#upload').on('click', function() {
var file_data = $('#sortpicture').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data)
alert(form_data);
$.ajax({
url: 'upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(data){
alert(data);
}
});
});
<?php
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
}
?>
<head>
...
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
...
</head>
<html>
<body>
...
</body>
...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
...
</html>