Rank: Member
Groups: Member
Joined: 2/13/2012(UTC) Posts: 21
Thanks: 1 times
|
I wonder whether someone may be able to help please. This is a segment of my 'upload.php' file capturing field values which I then process in my gallery page, also shown below: 'Upload.php'Code: //Save file info.
$xmlFile = $descriptions->createElement('file');
$xmlFile->setAttribute('name', $_POST['folder'] . '/' . $originalFileName);
$xmlFile->setAttribute('originalname', $originalFileName);
$xmlFile->setAttribute('source', $path . $sourceFileName);
$xmlFile->setAttribute('size', $uploadedFile->getSourceSize());
//Add additional fields
[h]$xmlFile->setAttribute('description', $uploadedFile->getDescription());[/h]
$xmlFile->setAttribute('folder', $dirName);
$descriptions->documentElement->appendChild($xmlFile);
$descriptions->save($absGalleryPath . 'files.xml');
'Gallery.php'Code:<p><a href="<?php echo $galleryPath . 'Thumbnails/'.$fileName;?>" ><img src="<?php echo $galleryPath . 'Thumbnails/'.$fileName;?>" title="<?php echo htmlentities($xmlFile->getAttribute('originalname'));?>" alt="<?php echo htmlentities($xmlFile->getAttribute('originalname'));?>" /></a></p>
<p><b>Original Filename:</b> <?php echo htmlentities($xmlFile->getAttribute('originalname'));?> <br />
<b>User Image Description:</b> <?php echo htmlentities($xmlFile->getAttribute('description'));?> <br />
<b>Image Contained In Folder:</b> <?php echo htmlentities($xmlFile->getAttribute('folder'));?> <br />
What I would like to do in the scenario of there being no 'description' provided by the user I would like the 'description' field value to read 'No description provided.' I've made several attempts at combinations of code in both scripts, the latest being: Code: if(empty($xmlFile->setAttribute('description', $uploadedFile->getDescription()){
$xmlFile->setAttribute('description', $uploadedFile->getDescription()) = 'No Description provided.';{
else
$xmlFile->setAttribute('description', $uploadedFile->getDescription())};
Unfortunately, in some respects, I don't receive any error message, but the file is not uploaded, so my code must be wrong somewhere but I'm not sure where. I've trawled through the forum and the documentation to see if there is any guidance on how to replace blank values, but I can't find anything. I just wondered whether someone could perhaps let me know where I'm going wrong please or point me in the direction of some documentation I've not been able to find. Many thanks and kind regards. Chris
|
|
|
|
Rank: Advanced Member
Groups: Joined: 5/29/2010(UTC) Posts: 1,310
Thanks: 8 times Was thanked: 111 time(s) in 111 post(s)
|
Hello Crhis, You can use BeforeUpload event, where set "description" field to "No Description provided". Here is example: Code:function beforeUpload(){
uploader = $au.uploader('Uploader1');
count = uploader.files().count();
for (i = 0; i < count; i ++){
if (uploader.files().get(i).description() == "")
uploader.files().get(i).description("No Description provided");
}
}
Edited by user Thursday, March 8, 2012 11:27:39 PM(UTC)
| Reason: Not specified |
Best regards, Dmitry Obukhov
Technical Support. Aurigma, Inc.
|
|
|
|
Rank: Member
Groups: Member
Joined: 2/13/2012(UTC) Posts: 21
Thanks: 1 times
|
Hi Dmitry, sincere thanks for this. I'm sorry to be a little slow off the mark, but am i correct in thinking that this should go in my 'index.php' file. If so I'm having problems in implementing this piece of code because I already have another 'onBeforeUpload' event on my page. I've added my 'index.php' script below and highlighted the appropriate lines. Could perhaps provide a little guidnace on how I can incorporate the two if this is the correct script to insert this code. Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Add Images</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="Styles/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="Libraries/jquery/jquery-1.4.3.min.js"></script>
<script src="Scripts/aurigma.uploader.js" type="text/javascript"></script>
</head>
<script type="text/javascript">
$(function() {
var uploaderID = 'Uploader1';
function updateInfo() {
var restrictions = $au.uploader(uploaderID).restrictions();
var params = {
enableCmyk: restrictions.enableCmyk() && restrictions.EnableCmyk() !== "false" ? 'True' : 'True',
fileMask: restrictions.fileMask() || '*.*',
maxFileCount: parseInt(restrictions.maxFileCount()) || 'any',
maxFileSize: parseInt(restrictions.maxFileSize()) || 'any',
maxImageHeight: parseInt(restrictions.maxImageHeight()) || 'any',
maxImageWidth: parseInt(restrictions.maxImageWidth()) || 'any'
};
var infoHtml = '<li>Allowed File Types: ${fileMask}</li>' +
'<li>Maximum number of files per upload: ${maxFileCount}</li>' +
'<li>Maximum file size: 1024KB </li>';
infoHtml = infoHtml.replace(/\$\{(\w+)\}/g, function(str0, str1, offset, s) { return params[str1]; });
$('#info').html(infoHtml);
}
updateInfo();
});
</script>
<script type="text/javascript">
$(function () {
$('input[name=folder-type]').click(function (ev) {
$('.folder-name').attr('disabled', 'disabled').parent().addClass('disabled');
$(this).parents('.row').removeClass('disabled').children('.folder-name').attr('disabled', '');
});
$('#folder-type-new').change(function() {
$('#folderNameTextBox').select().focus();
});
$('#folder-type-existing').change(function() {
$('#folderNameDropDownList').focus();
});
if ($('#folderNameDropDownList')[0].options.length == 0) {
$('#folder-type-existing').attr('disabled', true);
}
$('#folderNameTextBox').focus();
});
</script>
<script type="text/javascript">
[h] function onBeforeUpload() { [/h]
// Get folder name
var folderName = $('input[name=folder-type]:checked').parents('.row').children('.folder-name').val();
if (!folderName) {
alert('Specify folder name');
return false;
}
// Add folder name field
this.metadata().addCustomField('folder', folderName);
}
</script>
<style type="text/css">
<!--
.style1 {
font-family: Calibri;
font-size: 14px;
}
-->
</style>
<div class="style1">
<div align="right">Add Images → <a href = "imagefolders.php" /> View Uploaded Images In Folder Structure </a></div>
</div>
<?php
$galleryPath = 'UploadedFiles/';
$absGalleryPath = realpath($galleryPath) . '/';
$dirs = array();
if (file_exists($absGalleryPath . 'files.xml')) {
$descriptions = new DOMDocument('1.0', 'utf-8');
$descriptions->load($absGalleryPath . 'files.xml');
for ($i = 0; $i < $descriptions->documentElement->childNodes->length; $i++) {
$name = $descriptions->documentElement->childNodes->item($i)->getAttribute('name');
$dir = dirname($name);
if ($dir && $dir != '.') {
$dirs[] = array_shift(explode('/', $dir));
}
}
$dirs = array_unique($dirs);
}
?>
<form id="addimages" name="addimages" class="page" action="index.php" method="post" enctype="application/x-www-form-urlencoded">
<div class="aB">
<div class="aB-B">
<?php if ('Uploaded files' != $current['title']) :?>
<?php endif;?>
<div class="demo">
<fieldset class="content-block">
<legend>Restriction settings</legend>
<div class="row">
<ul id='info'>
</ul>
</div>
</fieldset>
<fieldset class="folder-settings content-block">
<legend>Folder name</legend>
<div class="row">
<label for="folder-type-new" class="caption">
<input type="radio" name="folder-type" id="folder-type-new" checked="checked" /> New
folder </label>
<input type="text" id="folderNameTextBox" value="" class="folder-name"/>
</div>
<div class="row disabled">
<label for="folder-type-existing" class="caption">
<input type="radio" name="folder-type" id="folder-type-existing" /> Existing
folder </label>
<select id="folderNameDropDownList" class="folder-name" disabled="disabled">
<?php foreach ($dirs as $dir) : ?>
<option><?php echo htmlentities($dir, NULL, 'UTF-8'); ?></option>
<?php endforeach; ?>
</select>
</div>
</fieldset>
<div class="code">
<p>
<?php
require_once "ImageUploaderPHP/Uploader.class.php";
// create Uploader object and specify its ID and size
$uploader = new Uploader("Uploader1");
$uploader->setWidth("650px");
$uploader->setHeight("305px");
// specify a license key
$uploader->setLicenseKey("76FF1-00071-5B800-00031-8EBBC-13B43C");
$uploader->setScriptsDirectory ('ImageUploaderPHP/Scripts');
$uploader->getJavaControl()->setCodeBase ('ImageUploaderPHP/Scripts/ImageUploader7.jar');
$uploader->getActiveXControl()->setCodeBase ('ImageUploaderPHP/Scripts/ImageUploader7.cab');
// configure upload settings
$uploader->getUploadSettings()->setActionUrl("upload.php");
//setting folder pane height
$uploader->getFolderPane()->setHeight("250");
// setting view mode of Folder & Upload pane
$uploader->getFolderPane()->setViewMode('Tiles');
$uploader->getUploadPane()->setViewMode('Tiles');
// setting of file restrictions
$uploader->getRestrictions()->setFileMask('*.jpg;*.jpeg;*.png;*.bmp;*.gif');
$uploader->getRestrictions()->setEnableCmyk(true);
$uploader->getRestrictions()->setMaxFileCount(10);
$uploader->getMessages()->setMaxFileCountExceeded("I'm sorry, the number of files you have selected for this upload session exceed the 10 file limit.");
$uploader->getRestrictions()->setMaxTotalFileSize(10485760);
$uploader->getMessages()->setMaxTotalFileSizeExceeded("I'm sorry, the number of files that you have selected for this upload session exceed the 10MB limit.");
$uploader->getRestrictions()->setMaxFileSize(1048576);
$uploader->getRestrictions()->setDeniedFileMask("*.exe;*.bat;*.cmd;*.wsf");
/* Configure converters */
//Main converter
$converter1 = new Converter();
$converter1->setMode('*.*=Thumbnail');
$converter1->setThumbnailWidth(700);
$converter1->setThumbnailHeight(700);
$converter1->setThumbnailFitMode("Fit");
$converter1->setThumbnailApplyCrop(true);
//Converter for gallery
$converter2 = new Converter();
$converter2->setMode('*.*=Thumbnail');
$converter2->setThumbnailWidth(120);
$converter2->setThumbnailHeight(120);
$converter2->setThumbnailFitMode("Fit");
$converter2->setThumbnailApplyCrop(true);
$uploader->setConverters(array(
$converter1,
$converter2
));
$uploader->getDetailsViewColumns()->setDimensionsText('');
[h] $uploader->getClientEvents()->setBeforeUpload('onBeforeUpload');[/h]
require_once 'ImageUploaderPHP/InstallationProgress.class.php';
$ip = new InstallationProgress($uploader);
$ip->setProgressImageUrl('Images/installation_progress.gif');
$ip->setProgressCssClass('ip-progress');
$ip->setInstructionsCssClass('ip-instructions');
$uploader->render();
?>
</p>
</div>
</div>
</div>
</div>
</form>
</body>
</html>
Many thanks and kind regards Chris
|
|
|
|
Rank: Advanced Member
Groups: Joined: 5/29/2010(UTC) Posts: 1,310
Thanks: 8 times Was thanked: 111 time(s) in 111 post(s)
|
Hello Chris :) Sorry for this misunderstanding. Yes, you need to add BeforeUpload event which I showed to index.php file. If you have this one already, it is okay :) You just need to add my code after yours. Please see this code snippet: Code:
<script type="text/javascript">
function onBeforeUpload() {
// Get folder name
var folderName = $('input[name=folder-type]:checked').parents('.row').children('.folder-name').val();
if (!folderName) {
alert('Specify folder name');
return false;
}
// Add folder name field
this.metadata().addCustomField('folder', folderName);
//Dmitry’s code
count = this.files().count(); // get count of files added to upload list
for (i = 0; i < count; i ++){ // iterate them
if (this.files().get(i).description() == "") // check whether “description” is empty
this.files().get(i).description("No description provided"); // if so, add “No description provided” text to “description” field
}
}
</script>
If something is not clear, please let me know, Chris. |
Best regards, Dmitry Obukhov
Technical Support. Aurigma, Inc.
|
|
|
|
Rank: Member
Groups: Member
Joined: 2/13/2012(UTC) Posts: 21
Thanks: 1 times
|
Hi Dmitry, there is no need to apologise. It was my lack of PHP knowledge that let me down and not you :)
The code works great.
Thank you so much, once again.
Kind regards
Chris
|
|
|
|
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.