Я пытаюсь разрешить пользователям загружать изображения на сервер, используя сжатие файлов JPEG на стороне клиента для уменьшения использования полосы пропускания.
Однако мне, похоже, очень трудно это сделать, и я был бы признателен за помощь.
Я попытался использовать пример кода с веб-сайта в качестве представления, например:
<!DOCTYPE html>
<html xmlns="<a class="linkification-ext" href="http://www.w3.org/1999/xhtml" title="Linkification: http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>" dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Plupload - Getting Started</title><script type="text/javascript" src="<?php echo base_url();?>assets/js/plupload.full.min.js" ></script>
</head>
<body>
<ul id="filelist"></ul>
<br />
<div id="container">
<a id="browse" href="javascript:;">[Browse...]</a>
<a id="start-upload" href="javascript:;">[Start Upload]</a>
</div>
<br />
<pre id="console"></pre>
<script type="text/javascript">
var uploader = new plupload.Uploader({
browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself
url: '<?php echo base_url();?>application/views/messages/upload.php',
resize: {
quality: 80,
preserve_headers: false
}
});
uploader.init();
uploader.bind('FilesAdded', function(up, files) {
var html = '';
plupload.each(files, function(file) {
html += '<li id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></li>';
});
document.getElementById('filelist').innerHTML += html;
});
uploader.bind('UploadProgress', function(up, file) {
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
});
uploader.bind('Error', function(up, err) {
document.getElementById('console').innerHTML += "\nError #" + err.code + ": " + err.message;
});
document.getElementById('start-upload').onclick = function() {
uploader.start();
};
</script>
</body>
</html>
И стандартная страница upload.php в том же каталоге, что и вышеупомянутый вид:
<?php
if (empty($_FILES) || $_FILES["file"]["error"]) {
die('{"OK": 0}');
}
$fileName = $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"], "<?php echo base_url();?>uploads/files/$fileName");
die('{"OK": 1}');
?>
Кажется, что код работает, и я получаю сообщение 100% вместе с информацией о файле, но в указанном каталоге загрузки нет изображения, другие представления в той же папке могут записывать в каталог, используя другие методы загрузки файлов, поэтому разрешения не кажется, проблема. Я был бы признателен за некоторые советы здесь, о том, что может быть проблема, или где искать ответ, спасибо.
Задача ещё не решена.
Других решений пока нет …