Есть несколько полей такого типа <input type="file" name="file1">
в которых я выбираю изображения. Мне нужно с помощью ajax залить их на imgur, а ссылку вернуть в ответе. Проблема в том, что не знаю как правильно передать изображения в $_FILES['img'].
JS
$.each($("[name=file"+i+"]"), function(i, obj){
$.each(obj.files,function(i,file){
$.ajax({
url: 'imgur.php',
data: file,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
if(data != '') {
arr.push(data); // записываю ответ в массив
}
}
})
PHP
<?php
if (isset($_FILES['img'])) {
$file = $_FILES['img'];
if ($file['name'] != '') {
$filename = $file['tmp_name'];
$client_id = "***************";
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$pvars = array('image' => base64_encode($data));
$timeout = 30;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.imgur.com/3/image.json');
curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $pvars);
$out = curl_exec($curl);
curl_close ($curl);
$pms = json_decode($out,true);
$url=$pms['data']['link'];
if ($url!="") {
$url = str_replace('http://', 'https://', $url );
$imgname = preg_replace('/\.[^.]+$/','',$file['name']);
echo $url;
}
}
}
?>
Сделай через Guzzle, вот пример
http://stackoverflow.com/questions/38133244/upload-file-using-guzzle-6-to-api-endpoint
Сделайте так:
<form id="upload">
<input type="file" name="file">
<button type="submit">Upload</button>
</form>
<script>
$( document ).ready(function() {
$("#upload").submit(function(e){
e.preventDefault();
var form=($(this)[0]);
var formdata=new FormData(form);
$.ajax({
url:'url.php',//обработчик
type:'POST',
data:formdata,
enctype:'multipart/form-data',
processData:false,
contentType:false,
success:function(data){
//в случае успешной загрузки
},
error: function (data) {
//в случае ошибки
}
});
});
});
</script>
В обработчике проверяться с помощью $_POST['file']
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно выбрать все элементы a обернуть кадлый из них в li и добавить в ul с id="menu"
Добрый день коллеги, Прошу вас помочь победить злополучный слайдер
Есть форма с данными, которая автоматически при нажатии кнопки submit отправляется на сайт robokassa (в action у формы стоит ссылка на страницу оплаты)Как...
Есть ли какая-нибудь JavaScript-библиотека, которая включает в себя задание разного рода уравнений и умеет строить для них графики? Спасибо