Skip to content

Commit 43c656c

Browse files
committed
Merge pull request #59 from qiniu/develop
Release v6.1.5
2 parents dbf237f + 4732c3b commit 43c656c

File tree

6 files changed

+49
-4
lines changed

6 files changed

+49
-4
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
## CHANGE LOG
22

3+
### v6.1.5
4+
5+
2014-2-13 issues [#59](https://github.com/qiniu/php-sdk/pull/59)
6+
7+
- 修复 PutExtra.MimeType 无效的问题
8+
9+
310
### v6.1.4
411

512
2013-10-25 issues [#52](https://github.com/qiniu/php-sdk/pull/52)

docs/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
title: PHP SDK
33
---
44

5+
# PHP SDK 使用指南
56

67
此 SDK 适用于 PHP 5.1.0 及其以上版本。基于 [七牛云存储官方API](http://docs.qiniu.com) 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。无论您的网络应用是一个网站程序,还是包括从云端(服务端程序)到终端(手持设备应用)的架构的服务或应用,通过七牛云存储及其 SDK,都能让您应用程序的终端用户高速上传和下载,同时也让您的服务端更加轻盈。
78

qiniu/http.php

+3-2
Original file line numberDiff line numberDiff line change
@@ -261,10 +261,11 @@ function Qiniu_Build_MultipartForm($fields, $files) // => ($contentType, $body)
261261

262262
foreach ($files as $file) {
263263
array_push($data, '--' . $mimeBoundary);
264-
list($name, $fileName, $fileBody) = $file;
264+
list($name, $fileName, $fileBody, $mimeType) = $file;
265+
$mimeType = empty($mimeType) ? 'application/octet-stream' : $mimeType;
265266
$fileName = Qiniu_escapeQuotes($fileName);
266267
array_push($data, "Content-Disposition: form-data; name=\"$name\"; filename=\"$fileName\"");
267-
array_push($data, 'Content-Type: application/octet-stream');
268+
array_push($data, "Content-Type: $mimeType");
268269
array_push($data, '');
269270
array_push($data, $fileBody);
270271
}

qiniu/io.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function Qiniu_Put($upToken, $key, $body, $putExtra) // => ($putRet, $err)
3333
$fields['crc32'] = $putExtra->Crc32;
3434
}
3535

36-
$files = array(array('file', $fname, $body));
36+
$files = array(array('file', $fname, $body, $putExtra->MimeType));
3737

3838
$client = new Qiniu_HttpClient;
3939
return Qiniu_Client_CallWithMultipartForm($client, $QINIU_UP_HOST, $fields, $files);
@@ -47,6 +47,10 @@ function Qiniu_PutFile($upToken, $key, $localFile, $putExtra) // => ($putRet, $e
4747
$putExtra = new Qiniu_PutExtra;
4848
}
4949

50+
if (!empty($putExtra->MimeType)) {
51+
$localFile .= ';type=' . $putExtra->MimeType;
52+
}
53+
5054
$fields = array('token' => $upToken, 'file' => '@' . $localFile);
5155
if ($key === null) {
5256
$fname = '?';

qiniu/utils.php

+7
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,10 @@ function Qiniu_Encode($str) // URLSafeBase64Encode
77
return str_replace($find, $replace, base64_encode($str));
88
}
99

10+
11+
function Qiniu_Decode($str)
12+
{
13+
$find = array('-', '_');
14+
$replace = array('+', '/');
15+
return base64_decode(str_replace($find, $replace, $str));
16+
}

tests/IoTest.php

+26-1
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,38 @@ public function testPut_mime_save()
8686

8787
list($ret, $err) = Qiniu_RS_Stat($this->client, $this->bucket, $key);
8888
$this->assertNull($err);
89-
$this->assertEquals($ret['mimeType'], 'application/x-httpd-php');
89+
$this->assertEquals($ret['mimeType'], 'application/x-php');
9090
var_dump($ret);
9191

9292
$err = Qiniu_RS_Delete($this->client, $this->bucket, $key);
9393
$this->assertNull($err);
9494
}
9595

96+
public function testPut_mimetype() {
97+
$key = 'testPut_mimetype' . getTid();
98+
$err = Qiniu_RS_Delete($this->client, $this->bucket, $key);
99+
$scope = $this->bucket . ":" . $key;
100+
101+
$putPolicy = new Qiniu_RS_PutPolicy($scope);
102+
$putPolicy->ReturnBody = '{"key":$(key),"mimeType":$(mimeType)}';
103+
$upToken = $putPolicy->Token(null);
104+
105+
$putExtra = new Qiniu_PutExtra();
106+
$putExtra->MimeType = 'image/jpg';
107+
108+
list($ret1, $err1) = Qiniu_PutFile($upToken, $key, __file__, $putExtra);
109+
var_dump($ret1);
110+
$this->assertNull($err1);
111+
$this->assertEquals($ret1['mimeType'], 'image/jpg');
112+
113+
list($ret2, $err2) = Qiniu_Put($upToken, $key, "hello world", $putExtra);
114+
var_dump($ret2);
115+
$this->assertNull($err2);
116+
$this->assertEquals($ret2['mimeType'], 'image/jpg');
117+
118+
$err = Qiniu_RS_Delete($this->client, $this->bucket, $key);
119+
}
120+
96121
public function testPut_exclusive()
97122
{
98123
$key = 'testPut_exclusive' . getTid();

0 commit comments

Comments
 (0)