Php 远程上传AmazonS3

Php 远程上传AmazonS3,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我制作了一个脚本,通过链接上传远程文件到AmazonS3,但不起作用。我不知道怎么了。下面是完成的所有代码,我正在使用最新版本的Amazon SDK: config.php <?php return [ 's3' => [ 'key' => 'mykey', 'secret' => 'mykey', 'bucket' => 'mybucket', 'region' => 'us-west

我制作了一个脚本,通过链接上传远程文件到AmazonS3,但不起作用。我不知道怎么了。下面是完成的所有代码,我正在使用最新版本的Amazon SDK:

config.php

<?php

return [
    's3' => [
        'key' => 'mykey',
        'secret' => 'mykey',
        'bucket' => 'mybucket',
        'region' => 'us-west-2',
        'version' => 'latest'
    ]
]

?>
start.php

<?php
use Aws\S3\S3Client;
require 'aws/aws-autoloader.php';

$config = require('config.php');

//S3

$s3 = S3Client::factory([
    'key' => $config['s3']['key'],
    'secret' => $config['s3']['secret'],
    'region' => $config['s3']['region'],
    'version' => $config['s3']['version']

]);
?>
upload.php

<?php

use Aws\S3\Exception\S3Exception;
require 'start.php';

error_reporting(0);
$get_url = $_POST["url"];
$url = trim($get_url);
if($url)
{
    $file = fopen($url,"rb");
    $directory = "animes";
    $valid_exts = array("php","jpeg","gif","png","doc","docx","jpg","html","asp","xml","JPEG","bmp"); 
    $ext = end(explode(".",strtolower(basename($url))));
    if(in_array($ext,$valid_exts))
    {
        $rand = rand(1000,9999);
        $filename = "$rand.$ext";
        $newfile = fopen($directory . $filename, "wb");
        try{
            $s3->putObject([
                'Bucket' => $config['s3']['bucket'],
                'Key' => "{$directory}/{$filename}",
                'ACL' => 'public-read'
        ]);


    } catch(S3Exception $e){
        die("Error.");
    }
        if($newfile)
        {
            while(!feof($file))
            {
                fwrite($newfile,fread($file,1024 * 8),1024 * 8);
            }
            echo 'File uploaded successfully';
            echo '**$$**'.$filename;
        }
        else
        {
            echo 'File does not exists';
        }
    }
    else
    {
        echo 'Invalid URL';
    }
}
else
{
    echo 'Please enter the URL';
}
?>
和index.php

<html>
    <head>
        <title>PHP File Upload From URL</title>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript">
        $(document).ready(function(){
            $("#1").hide();
        });
        function uploadfile(){
            $("#1").show();
            $("#disp").html("");
            var url = encodeURIComponent($("#url").val());
            $.ajax({
                url: "upload.php",
                data: "url=" +url,
                type: 'post',
                success: function(data)
                {
                    var findsucc = data.indexOf("successfully");
                    out=data.split('**$$**');
                    if(findsucc!=-1)
                    {
                        $("#disp").css({"color": "green"});
                        $("#disp").html(out[0]);
                        $("#link").html("<a href='./upload/"+out[1]+"'>Click here</a> to view");
                        $("#1").hide();
                    }
                    else
                    {
                        $("#1").hide();
                        $("#disp").css({"color": "red"});
                        $("#disp").html(data);
                        $("#url").val("");
                    }
                }
            });

        }
        </script>
    </head>
<body>
<div align='center' style='padding-top: 40px;color: #4e4e4e;'><h1>PHP File Upload From URL</h1></div>
<div align='center' style='padding-top: 30px;'>
Enter Remote URL: <input type="text" name="url" id='url' size="35"> <input type="submit" value="Upload" name="submit" style='cursor: pointer;' onclick='uploadfile()'>&nbsp;&nbsp;<img src='ajax-loader.gif' id='1'>&nbsp;&nbsp;<br /><br /><div align='center'><span id='disp'></span></div><br>
<div id='link'></div><br />
<div style=" padding-left: 20px;font-size: 10px;color: #dadada;" id="dumdiv">
</div>
</body>
</html>

调试php的最佳方法是通过php的命令行版本运行它,这将显示终端中的错误,而不是挖掘Web服务器日志,这些日志可能会或可能不会提供任何详细信息

如何做到这一点?我正在Windows上使用EasyHP啊,我不确定,抱歉。这是针对unix命令行环境的。一个快速的google显示EasyHP有一个叫做XDebug的东西,它可以让你调试你的代码?嗨,道格拉斯,你解决了吗?如果是,你能分享吗?还没有解决,但当你工作的时候我可以分享。