Ciao longilineo
Grazie per avermi risposto
La pagina che contiene il form tra i tag head contiene il seguente codice:
codice:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
//
//show the progress bar only if a file field was clicked
var show_bar = 0;
$('input[type="file"]').click(function(){
show_bar = 1;
});
//show iframe on form submit
$("#caricafile").submit(function(){
if (show_bar === 1) {
$('#upload_frame').show();
function set () {
$('#upload_frame').attr('src','upload_frame.php?up_id=ProductFields[%%GLOBAL_ProductFieldId%%]');
}
setTimeout(set);
}
});
//
});
</script>
Che su clic del mouse richiama il file upload_frame.php
Mentre il form è così:
codice:
<form name="caricafile" id="caricafile" method="post" action="%%GLOBAL_CartLink%%" onsubmit="return check_add_to_cart(this, %%GLOBAL_ProductOptionRequired%%)" enctype="multipart/form-data">
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="ProductFields[%%GLOBAL_ProductFieldId%%]"/>
<input type="%%GLOBAL_ProductFieldType%%" name="ProductFields[%%GLOBAL_ProductFieldId%%]" class="Textbox %%GLOBAL_FieldRequiredClass%%" size="%%GLOBAL_ProductFieldInputSize%%" value="%%GLOBAL_ProductFieldValue%%" />
<iframe id="upload_frame" name="upload_frame" frameborder="0" border="0" src="" scrolling="no" scrollbar="no" > </iframe>
<input name="Submit" type="submit" id="submit" value="Submit" />
Il file upload_frame.php
tra i tag head contiene il seguente codice:
codice:
<?php
$url = basename($_SERVER['SCRIPT_FILENAME']);
//Get file upload progress information.
if(isset($_GET['progress_key'])) {
$status = apc_fetch('upload_'.$_GET['progress_key']);
echo $status['current']/$status['total']*100;
die;
}
//
?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.js" type="text/javascript"></script>
<link href="style_progress.css" rel="stylesheet" type="text/css" />
<script>
$(document).ready(function() {
//
setInterval(function()
{
$.get("<?php echo $url; ?>?progress_key=<?php echo $_GET['up_id']; ?>&randval="+ Math.random(), {
//get request to the current URL (upload_frame.php) which calls the code at the top of the page. It checks the file's progress based on the file id "progress_key=" and returns the value with the function below:
},
function(data) //return information back from jQuery's get request
{
$('#progress_container').fadeIn(100); //fade in progress bar
$('#progress_bar').width(data +"%"); //set width of progress bar based on the $status value (set at the top of this page)
$('#progress_completed').html(parseInt(data) +"%"); //display the % completed within the progress bar
}
)},500); //Interval is set at 500 milliseconds (the progress bar will refresh every .5 seconds)
});
</script>
Mentre tra i tag body il seguente:
codice:
<body style="margin:0px">
<div id="progress_container">
<div id="progress_bar">
<div id="progress_completed"></div>
</div>
</div>
</body>
Quindi upload_frame.php dovrebbe controllare lo stato di avanzamento dell'upload tramite il valore di up_id (indicato nell'head della pagina che contiene il modulo di caricamento)
up_id prende il valore dal value= %%GLOBAL_ProductFieldId%% che a pagina caricata si traduce nell'id del prodotto, ma non dell'immagine
codice:
<input type="hidden" name="APC_UPLOAD_PROGRESS" id="progress_key" value="ProductFields[%%GLOBAL_ProductFieldId%%]"/>
Pensi che l'errore stia lì?
Partendo da:
codice:
define("NOME", "valore");
codice:
define("$folder", "$uploadDirectory");
codice:
define("$up_id", "$fileName");
E' possibile fare una cosa del genere?
Grazie ancora