Thanks for your quick response, the web script is below, I use it to upload a user's profile picture.
// arguments
var userId = args.userId;
var height = 160;
var width = 160;
var imageName = 'ProfileImage.jpeg';
var imagePath = 'User Homes/Site/' + userId + '/uploads';
var imageTitle = 'User profile picture for user ' + userId;
var imageDescription = 'User profile picture for user ' + userId;
var tempPath = imagePath + '/temp';
var tempImageName = 'tmp_' + imageName;
var image = null;
// get image file from form
for each(field in formdata.fields) {
if (field.name == 'file' && field.isFile) {
image = field;
}
}
// ensure file has been uploaded
if (image == null) {
throwError(400, 'Upload file not provided');
}
else if (image.filename == '') {
throwError(500, 'Uploaded file cannot be located');
}
else {
// delete temporary folder, if it exists (in order to remove all its existing content)
var tempPathNode = companyhome.childByNamePath(tempPath);
if (tempPathNode != null) {
var removed = tempPathNode.remove();
// if temporary folder removal fails, throw exception
if (!removed) {
throwError(500, 'Removing temporary folder: ' + tempPath + ' failed for user: ' + userId);
}
}
// re-create temporary folder, to use in this upload operation
tempPathNode = companyhome.createFolder(tempPath);
// if temporary folder creation fails, throw exception
if (tempPathNode == null) {
throwError(500, 'Creating temporary folder: ' + tempPath + ' failed for user: ' + userId);
}
var imagePathNode = companyhome.childByNamePath(imagePath);
// if image upload folder does not exist, throw exception
if (imagePathNode == null) {
throwError(500, 'Cannot find image uploads folder: ' + imagePath + ' for user: ' + userId);
}
var oldImage = imagePathNode.childByNamePath(imageName);
// if an old image already exists, move it to temporary folder above
if (oldImage != null) {
moveImage(oldImage, tempPathNode);
}
// upload new image to temporary folder
upload = tempPathNode.createFile(tempImageName);
upload.properties.content.guessMimetype(image.filename);
upload.properties.content.write(image.content);
upload.properties.title = imageTitle;
upload.properties.description = imageDescription;
upload.save();
// determine image dimensions
var imageDimensions = imageDimensions(upload, height, width);
// if determining image dimensions fails, return old image from temporary folder to original location, and throw exception
if (imageDimensions == null) {
if (oldImage != null) {
moveImage(oldImage, imagePathNode);
}
throwError(500, 'Determining image dimensions failed for user: ' + userId);
}
// rename image before saving it on transformation
upload.properties.name = imageName;
var transformedImage = upload.transformImage('image/jpeg', imageDimensions, imagePathNode);
// if image transformation fails, return old file from temporary folder to original location, and throw exception
if (transformedImage == null) {
if (oldImage != null) {
moveImage(oldImage, imagePathNode);
}
throwError(500, 'File transformation failed for user: ' + userId);
}
// remove the temporary folder
tempPathNode.remove();
//setup model for response template
model.upload = upload;
}
function throwError(errorCode, message) {
status.code = errorCode;
status.message = message;
status.redirect = true;
}
function imageDimensions(image, height, width) {
var dimensions = null;
var imageHeight = image.properties.height;
var imageWidth = image.properties.width;
if (imageHeight >= imageWidth) {
// set to fixed height. keep aspect ratio
dimensions = '-resize x' + height;
} else {
// set to fixed width. keep aspect ratio
dimensions = '-resize ' + width;
}
return dimensions;
}
function moveImage(image, pathNode) {
var moved = image.move(pathNode);
// if move fails, throw an an error
if (!moved) {
throwError(500, 'Moving image file to location: ' + pathNode + ' failed for user: ' + userId);
}
}