使用 PHP 将图像上传到rackspace云文件
我正在尝试使用以下代码将文件上传到机架空间云文件:
Upload.html
<form action="upload.php" enctype="multipart/form-data" method="POST">
File:
<input name="upload" type="file" />
<input name="submit" type="submit" value="Upload To Rackspace!" />
</form>
Upload.php
<?php
// include the API
require('cloudfiles.php');
// cloud info
$username = ""; // username
$key = ""; // api key
// Connect to Rackspace
$auth = new CF_Authentication($username, $key);
$auth->authenticate();
$conn = new CF_Connection($auth);
// Get the container we want to use
$container = $conn->get_container('resumetune');
// store file information
$localfile = $_FILES['upload']['tmp_name'];
$filename = $_FILES['upload']['name'];
// upload file to Rackspace
$object = $container->create_object($filename);
$object->load_from_filename($localfile);
?>
现在我收到以下错误:
致命错误:未捕获异常“BadContentTypeException”,并在 C 中显示消息“未设置必需的内容类型”: \xampp\htdocs\rackspace\cloudfiles.php:1645 堆栈跟踪: #0 C:\xampp\htdocs\rackspace\cloudfiles.php(1962): CF_Object->_guess_content_type('C:\xampp\tmp\ph.. .') #1 C:\xampp\htdocs\rackspace\upload.php(24): CF_Object->load_from_filename('C:\xampp\tmp\ph...') #2 {main} 抛出在 C: \xampp\htdocs\rackspace\cloudfiles.php on line 1645
所以有人对此有任何想法吗?提前致谢。
I am trying to upload file to rackspace cloud file using the following code:
Upload.html
<form action="upload.php" enctype="multipart/form-data" method="POST">
File:
<input name="upload" type="file" />
<input name="submit" type="submit" value="Upload To Rackspace!" />
</form>
Upload.php
<?php
// include the API
require('cloudfiles.php');
// cloud info
$username = ""; // username
$key = ""; // api key
// Connect to Rackspace
$auth = new CF_Authentication($username, $key);
$auth->authenticate();
$conn = new CF_Connection($auth);
// Get the container we want to use
$container = $conn->get_container('resumetune');
// store file information
$localfile = $_FILES['upload']['tmp_name'];
$filename = $_FILES['upload']['name'];
// upload file to Rackspace
$object = $container->create_object($filename);
$object->load_from_filename($localfile);
?>
Now i am getting the gollowing error:
Fatal error: Uncaught exception 'BadContentTypeException' with message 'Required Content-Type not set' in C:\xampp\htdocs\rackspace\cloudfiles.php:1645 Stack trace: #0 C:\xampp\htdocs\rackspace\cloudfiles.php(1962): CF_Object->_guess_content_type('C:\xampp\tmp\ph...') #1 C:\xampp\htdocs\rackspace\upload.php(24): CF_Object->load_from_filename('C:\xampp\tmp\ph...') #2 {main} thrown in C:\xampp\htdocs\rackspace\cloudfiles.php on line 1645
So any one have any idea about this? thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
查看 http://github.com/rackspace/php-cloudfiles/ blob/master/cloudfiles.php 在函数 _guess_content_type() 中它正在寻找内容类型,但没有找到它。您需要向 /share/magic 添加更多信息,或者如果您知道内容类型是什么,则可以在调用 load_from_filename 之前设置内容类型。
looking at http://github.com/rackspace/php-cloudfiles/blob/master/cloudfiles.php at the function _guess_content_type() it's looking for the Content-type and it's not finding it. Either you need to add more information to your /share/magic or you can probably set the Content-type before calling the load_from_filename if you know what the content type is.
如果您没有 mime 或 FileInfo 函数可用,可以使用以下修复方法:
Here's a fix if you have neither mime or FileInfo functions available:
如果您没有启用 FileInfo 扩展(自 PHP 5.30 起默认启用)。我建议您检查 mime_content_type() 函数是否可用。
看来如果你没有这些,则无法检测到 Content-Type。如果现在两者都不可用,我会得到 FileInfo
If you dont have the FileInfo extension enabled (enabled by default since PHP 5.30). I suggest you check if mime_content_type() function is available.
It seems that if you have neither of those, the Content-Type cannot be detected. If neither is available right now, i'd get FileInfo
我发现克里斯·贝克的解决方案很有帮助。我需要加一个“。”在下面每个扩展的前面。
I found Chris Bake's solution helpful. I needed to put a "." in front of each extension below.
您可能还想考虑使用较新的官方 Rackspace PHP SDK。以下是创建对象的示例代码。
You might also want to consider using the newer official Rackspace PHP SDK. Here's the sample code for creating an object.