Я пытаюсь создать форму загрузки аватара с одним кликом. Это Javascript/PHP смешанный код:Проблемы с загрузкой аватара с одним кликом
<script type="text/javascript">
function uploadavatar(){
$('#frmuploadavatar').submit();
}
<?php
if(isset($_POST["btnuploadavatar"])){
$extension = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
$filename = pathinfo($_FILES["file"]["name"], PATHINFO_FILENAME);
$allowedExts = array('jpg','png');
if(!in_array($extension, $allowedExts)){
?>
$('#smlavatar').html("The uploaded file is not a jpg/png image!");
$('#smlavatar').attr("class","warning");
<?php
}else if($_FILES["file"]["size"]>2097152){
?>
$('#smlavatar').html("The uploaded file shouldn't exceed 2 megabytes!");
$('#smlavatar').attr("class","warning");
<?php
}else{
$uploadpath = "avatars/" . $filename . rand(1,1000000) . "." . $extension;
move_uploaded_file($_FILES["file"]["tmp_name"], $uploadpath);
?>
$('#imgavatar').attr("src","<?php echo $uploadpath; ?>");
$('#smlavatar').html("New avatar upload successfully!");
<?php
}
}
?>
</script>
А вот HTML код формы:
<form action="register.php" method="POST" id="frmuploadavatar">
<input type="file" class="avatarupload" id="inpuploadavatar" name="avatar" onchange="uploadavatar()" />
<input type="button" id="btnuploadavatar" value="Upload New Avatar" style="width: 150px;" />
</form>
я не включил код CSS, но это закодированы так, что контроль загрузки файла скрыта, и кнопка видна, но пользователь фактически нажимает на элемент управления загрузкой файла вместо кнопки (загрузка файла на передней панели с помощью z-index).
Я знаю, что функция uploadavatar() вызывается путем тестирования с предупреждением. Однако форма «frmuploadavatar» не отправляется, как сообщает код JQuery. Помогите?
'$ _FILES [" file "] [" size "]' находится в байтах, а 2000 - 2k, а не 2MB для 2MB, вы хотите это значение '2097152', также вы должны проверить' $ _FILES ["file"] [ «error»] 'перед тем, как делать что-либо еще. –
Спасибо за подсказку! :) – DarrenVortex