PHP图像上传:作为一个单独的例子工作,但不是从我的项目代码

PHP图像上传:作为一个单独的例子工作,但不是从我的项目代码,php,image,upload,Php,Image,Upload,我有一个最简单的图片上传案例。当我把它作为一个单独的例子运行时,它确实起作用了。当我将相同的.js代码合并到我的项目的javascript代码中,并尝试从我的html页面上传(.js和.php代码相同,id和名称调整等)时,它就不起作用了 html: php: 尝试从项目上载时从服务器收到的消息: POST-->POST: Source -----------------------------2656620091882 Content-Disposition: form-data;

我有一个最简单的图片上传案例。当我把它作为一个单独的例子运行时,它确实起作用了。当我将相同的.js代码合并到我的项目的javascript代码中,并尝试从我的html页面上传(.js和.php代码相同,id和名称调整等)时,它就不起作用了

html:

php:


尝试从项目上载时从服务器收到的消息:

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>