помогите допилить форму отправки фото на сайт
Здравствуйте, помогите с формой загрузки файла. Пробую сделать магазин на joomla и virtuemart. Появилась необходимость сделать загрузку файла в модуле товара virtuemart, нашел похожий урок на просторах нета "Загрузка файлов на сервер без перезагрузки страницы". Сделал как там описано, но дело доходит только до этапа "Идет загрузка файла" и на этом все стоит. Что я делаю не так?
код страницы: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html prefix="og: http://ogp.me/ns#" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru" dir="ltr"> <head> <base href="http://localhost/lambite/index.php/zakaz/shag-2/shag-3-pechat-ooo" /> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="title" content="Печать ООО" /> <meta name="description" content="Выберите пожалуйста наиболее подходящий для Вас образец оттиска. " /> <meta name="generator" content="Joomla! - Open Source Content Management" /> <title>Печать ООО</title> <link href="/lambite/index.php/zakaz/shag-2/shag-3-pechat-ooo" rel="canonical" /> <link rel="stylesheet" href="/lambite/components/com_k2/css/k2.css" type="text/css" /> <link rel="stylesheet" href="/lambite/components/com_virtuemart/assets/css/vmsite-ltr.css" type="text/css" /> <link rel="stylesheet" href="/lambite/media/system/css/modal.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/bootstrap/css/bootstrap.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/bootstrap/css/bootstrap-theme.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/bootstrap/css/bootstrap-gcore.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/font_awesome/css/font-awesome.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/gplugins/gtooltip/gtooltip.css" type="text/css" /> <link rel="stylesheet" href="http://localhost/lambite/libraries/cegcore/assets/gplugins/gvalidation/gvalidation.css" type="text/css" /> <script src="/lambite/media/system/js/mootools-core.js" type="text/javascript"></script> <script src="/lambite/media/system/js/core.js" type="text/javascript"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js" type="text/javascript"></script> <script src="/lambite/components/com_k2/js/k2.js?v2.6.8&sitepath=/lambite/" type="text/javascript"></script> <script src="/lambite/components/com_virtuemart/assets/js/jquery.min.js" type="text/javascript"></script> <script src="/lambite/components/com_virtuemart/assets/js/jquery.noconflict.js" type="text/javascript"></script> <script src="/lambite/components/com_virtuemart/assets/js/vmsite.js" type="text/javascript"></script> <script src="/lambite/components/com_virtuemart/assets/js/vmprices.js" type="text/javascript"></script> <script src="/lambite/media/system/js/modal.js" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ vmSiteurl = 'http://localhost/lambite/' ; vmLang = ""; //]]> window.addEvent('domready', function() { SqueezeBox.initialize({}); SqueezeBox.assign($$('a.modal'), { parse: 'rel' }); }); jQuery(document).ready(function () { jQuery('.orderlistcontainer').hover( function() { jQuery(this).find('.orderlist').stop().show()}, function() { jQuery(this).find('.orderlist').stop().hide()} ) }); </script> <link rel="stylesheet" href="/lambite/templates/system/css/system.css" type="text/css" /> <link rel="stylesheet" href="/lambite/templates/system/css/general.css" type="text/css" /> <link rel="stylesheet" type="text/css" href="/lambite/templates/shoptmpl/css/template.css" media="screen" /> <!--[if IE 6]><link rel="stylesheet" href="/lambite/templates/shoptmpl/css/template.ie6.css" type="text/css" media="screen" /><![endif]--> <!--[if IE 7]><link rel="stylesheet" href="/lambite/templates/shoptmpl/css/template.ie7.css" type="text/css" media="screen" /><![endif]--> <script type="text/javascript">if ('undefined' != typeof jQuery) document._artxJQueryBackup = jQuery;</script> <script type="text/javascript" src="/lambite/templates/shoptmpl/jquery.js"></script> <script type="text/javascript">jQuery.noConflict();</script> <script type="text/javascript" src="/lambite/templates/shoptmpl/script.js"></script> <script type="text/javascript">if (document._artxJQueryBackup) jQuery = document._artxJQueryBackup;</script> <script type="text/javascript" src="/lambite/templates/shoptmpl/script/main.js"></script> <script> jQuery(document).ready(function ($) { screenshotPreview(); window.onload = function () { document.querySelector("input.quantity-plus-js").click(); } jQuery( init ); function init() { //var divdiv = document.getElementById("ddd"); //var trtr = document.getElementById("sku01"); // ���������� �������� �� #myDiv1 � #myDiv2 jQuery('#osnas1').append( jQuery('.sku01')); jQuery('#osnas2').append( jQuery('.sku02')); jQuery('#osnas3').append( jQuery('.sku03')); } }); </script> </head> <body>...... ......<div class="art-nostyle vm_prod_upload"> <h3>Шаг 3 (печать ООО)</h3> <div class="vmgroup vm_prod_upload"> <ul class="vmproduct vm_prod_upload productdetails"> <li class=" width20 floatleft"> <a href="/lambite/index.php/zakaz/shag-2/shag-3-pechat-ooo/образец-1/оснастка/оттиск-30х30мм-detail" title="Оттиск 30х30мм"><img src="http://localhost/lambite/components/com_virtuemart/assets/images/vmgeneral/noimage.gif" alt="Не настроено изображение " id="vm_display_image" /></a><div class="clear"></div> <a href="/lambite/index.php/zakaz/shag-2/shag-3-pechat-ooo/образец-1/оснастка/оттиск-30х30мм-detail">Оттиск 30х30мм</a> <div class="clear"></div> <script type="text/javascript"> function hideBtn(){ jQuery('#upload').hide(); jQuery('#res').html("Идет загрузка файла"); } function handleResponse(mes) { jQuery('#upload').show(); if (mes.errors != null) { jQuery('#res').html("Возникли ошибки во время загрузки файла: " + mes.errors); } else { jQuery('#res').html("Файл " + mes.name + " загружен"); } } </script> <form action="upload.php" method="post" target="hiddenframe" enctype="multipart/form-data" onsubmit="hideBtn();"> <input type="file" id="userfile" name="userfile" /> <input type="submit" name="upload" id="upload" value="Загрузить" /> </form> <div id="res"></div> <iframe id="hiddenframe" name="hiddenframe" style="width:0px; height:0px; border:0px"></iframe> <div class="product-price"><div class="PricesalesPrice" style="display : block;" ><span class="PricesalesPrice" >450 р.</span></div></div> <div class="addtocart-area"> <form method="post" class="product" action="index.php"> <div class="addtocart-bar"> <!-- <label for="quantity69" class="quantity_box">Кол-во: </label> --> <span class="quantity-box"> <input type="text" class="quantity-input" name="quantity[]" value="1"/> </span> <span class="quantity-controls"> <input type="button" class="quantity-controls quantity-plus" /> <input type="button" class="quantity-controls quantity-minus" /> </span> <span class="addtocart-button"> <input type="submit" name="addtocart" class="addtocart-button" value="Добавить в корзину" title="Добавить в корзину" /> </span> <div class="clear"></div> </div> <input type="hidden" class="pname" value="Оттиск 30х30мм"/> <input type="hidden" name="option" value="com_virtuemart"/> <input type="hidden" name="view" value="cart"/> <noscript><input type="hidden" name="task" value="add"/></noscript> <input type="hidden" name="virtuemart_product_id[]" value="69"/> <input type="hidden" name="virtuemart_category_id[]" value="39"/> </form> <div class="clear"></div> </div> </li> </ul> <div class="clear"></div> </div></div>..... |
upload.php создал в каталоге с default.php модуля virtuemart.
код upload.php: <?php if(isset($_POST['upload'])){ $whitelist = array(".gif", ".jpeg", ".png"); $data = array(); $error = true; foreach ($whitelist as $item) { if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false; } if(!$error) { $folder = 'test/'; $uploadedFile = $folder.basename($_FILES['userfile']['name']); if(is_uploaded_file($_FILES['userfile']['tmp_name'])){ if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){ $data = $_FILES['userfile']; } else { $data['errors'] = "Во время загрузки файла произошла ошибка"; } } else { $data['errors'] = "Файл не загружен"; } } else{ $data['errors'] = 'Вы загружаете запрещенный тип файла'; } $res = '<script type="text/javascript">'; $res .= "var data = new Object;"; foreach($data as $key => $value){ $res .= 'data.'.$key.' = "'.$value.'";'; } $res .= 'window.parent.handleResponse(data);'; $res .= "</script>"; echo $res; } else{ die("ERROR"); } ?> |
Часовой пояс GMT +3, время: 06:56. |