/
bc-user-uploads.php
120 lines (100 loc) · 3.25 KB
/
bc-user-uploads.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php
/**
* Brightcove User Uploads 1.0.0 (25 FEBRUARY 2011)
*
* REFERENCES:
* Website: http://opensource.brightcove.com
* Source: http://github.com/brightcoveos
*
* AUTHORS:
* Matthew Congrove <mcongrove@brightcove.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the “Software”),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, alter, merge, publish, distribute,
* sublicense, and/or sell copies of the Software, and to permit persons to
* whom the Software is furnished to do so, subject to the following conditions:
*
* 1. The permission granted herein does not extend to commercial use of
* the Software by entities primarily engaged in providing online video and
* related services.
*
* 2. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, SUITABILITY, TITLE,
* NONINFRINGEMENT, OR THAT THE SOFTWARE WILL BE ERROR FREE. IN NO EVENT
* SHALL THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY WHATSOEVER, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
* THE SOFTWARE OR THE USE, INABILITY TO USE, OR OTHER DEALINGS IN THE SOFTWARE.
*
* 3. NONE OF THE AUTHORS, CONTRIBUTORS, NOR BRIGHTCOVE SHALL BE RESPONSIBLE
* IN ANY MANNER FOR USE OF THE SOFTWARE. THE SOFTWARE IS PROVIDED FOR YOUR
* CONVENIENCE AND ANY USE IS SOLELY AT YOUR OWN RISK. NO MAINTENANCE AND/OR
* SUPPORT OF ANY KIND IS PROVIDED FOR THE SOFTWARE.
*/
class BCUserUploads {
private $api = NULL;
public function __construct($api, $upload_options = NULL)
{
$this->api = $api;
$data = array();
$video = NULL;
foreach($_POST as $key => $value)
{
if(substr($key, 0, 3) == 'bc-')
{
$field = str_replace('bc-', '', $key);
if(substr($field, 0, 12) == 'customField-')
{
$field = str_replace('customField-', '', $field);
$data['customFields'][$field] = $value;
} else {
$data[$field] = $value;
}
}
}
if(isset($data['tags']))
{
$data['tags'] = $this->handleTags($data['tags']);
$data['tags'][] = 'User-Uploaded';
}
if(isset($_FILES['bc-video']))
{
if($_FILES['bc-video']['error'] !== 0)
{
// gulp
}
$location = dirname($_FILES['bc-video']['tmp_name']) . '/' . $_FILES['bc-video']['name'];
rename($_FILES['bc-video']['tmp_name'], $location);
$video = $location;
}
$options = array(
'encode_to' => 'MP4',
'create_multiple_renditions' => 'true'
);
if(isset($upload_options))
{
$options = array_merge($options, $upload_options);
}
$this->api->createMedia('video', $video, $data, $options);
}
private function handleTags($tags)
{
if (!is_array($tags)) {
$tags = explode(',', trim($tags));
}
$pattern = '/[\t\n\r]+/';
foreach($tags as $key => $value)
{
preg_match($pattern, $value, $matches);
if($matches)
{
unset($tags[$key]);
}
}
return $tags;
}
}
?>