我一直在编写一些代码,将上传的图像从C#提交到PHP,然后将图像存储在Amazon S3上,我已经达到了将其上传到localhost的目的,但我无法将其上传至Amazon S3。只是想知道你们能不能帮我一点忙?如果你不愿意,不用担心。
我使用的是在这里找到的amazons3PHP类
这是我的密码。
<?php
if (!class_exists('S3'))require_once('S3.php');
if (!defined('awsAccessKey')) define('awsAccessKey', 'CHANGEME');
if (!defined('awsSecretKey')) define('awsSecretKey', 'CHANGEME');
$s3 = new S3(awsAccessKey, awsSecretKey);
$uploaddir = 'upload/'; // Relative Upload Location of data file
$random_digit=rand(0000,9999); // random 4 digit to add to our file name
$nextWeek = time() + (7 * 24 * 60 * 60); //Gets system time.
$counter = 1;
if (is_uploaded_file($_FILES['file']['tmp_name']))
{
if(strpos(basename($_FILES['file']['name']), ".")){
$s1 = explode(".", basename($_FILES['file']['name']));
$p1 = count($s1) - 2;
$p2 = count($s1) - 1;
$uploadfile = $uploaddir . $s1[$p1] . $random_digit . $nextWeek . "." . $s1[$p2];
$s3->putObjectFile($uploadfile, "bucketname", $uploadfile, S3::ACL_PUBLIC_READ);
}
else
{
$uploadfile = $uploaddir . basename($_FILES['file']['name']) . $random_digit . $nextWeek ;
$s3->putObjectFile($uploadfile, "bucketname", $uploadfile, S3::ACL_PUBLIC_READ);
}
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
{
$url = explode("/", $uploadfile);
echo $url[1];
}
else
{
print_r($_FILES);
}
}
else {
echo "Upload Failed!!!";
print_r($_FILES);
}
?>
这两行代码已添加到以$uploadfile
开始的工作上载行下
请在下面找到工作代码。。。
if (!class_exists('S3'))require_once('S3.php');
if (!defined('awsAccessKey')) define('awsAccessKey', 'CHANGEME');
if (!defined('awsSecretKey')) define('awsSecretKey', 'CHANGEME');
$s3 = new S3(awsAccessKey, awsSecretKey);
$fileName = $_FILES['theFile']['name'];
$fileTempName = $_FILES['theFile']['tmp_name'];
$s3->putBucket("Bucket Name", S3::ACL_PUBLIC_READ);
if ($s3->putObjectFile($fileTempName, "Bucket Name", $fileName, S3::ACL_PUBLIC_READ)) {
echo "We successfully uploaded your file.";
}else{
echo "Something went wrong while uploading your file... sorry.";
}