Upload artwork using drag and drop or click to browse using track edit.

This commit is contained in:
Codenift 2019-10-25 10:30:33 -04:00
parent 7701d0f438
commit a65ab11d9f
6 changed files with 334 additions and 3 deletions

View file

@ -251,6 +251,69 @@ class FileDataHelper {
return $get_img;
}
/**
* Upload artwork
*
* @param string $trackid
* @param string $data
*
* @return string Path to artwork
*/
public static function uploadArtwork($trackid, $data)
{
$file = Application_Model_StoredFile::RecallById($trackid);
$md = $file->getMetadata();
$storDir = Application_Model_MusicDir::getStorDir();
$fp = $storDir->getDirectory();
$dbAudioPath = $md["MDATA_KEY_FILEPATH"];
$fullpath = $fp . $dbAudioPath;
$base64 = @$data;
$mime = explode(';', $base64)[0];
$audioPath = dirname($fullpath);
$dbPath = dirname($dbAudioPath);
$path_parts = pathinfo($fullpath);
$file = $path_parts['filename'];
//Save Data URI
if (file_put_contents($audioPath . "/" . $file, $base64)) {
$get_img = $dbPath . "/" . $file;
} else {
Logging::error("Could not save Data URI");
}
$rfile = $audioPath . "/" . $file;
if ($mime == "data:image/png") {
$ext = 'png';
} elseif ($mime == "data:image/gif") {
$ext = 'gif';
} elseif ($mime == "data:image/bmp") {
$ext = 'bmp';
} else {
$ext = 'jpg';
}
if (file_exists($rfile)) {
self::resizeImage($rfile, $rfile . '-32.jpg', $ext, 32, 100);
self::resizeImage($rfile, $rfile . '-64.jpg', $ext, 64, 100);
self::resizeImage($rfile, $rfile . '-128.jpg', $ext, 128, 100);
self::resizeImage($rfile, $rfile . '-256.jpg', $ext, 256, 100);
self::resizeImage($rfile, $rfile . '-512.jpg', $ext, 512, 100);
self::imgToDataURI($rfile . '-32.jpg', $rfile . '-32');
self::imgToDataURI($rfile . '-64.jpg', $rfile . '-64');
self::imgToDataURI($rfile . '-128.jpg', $rfile . '-128');
self::imgToDataURI($rfile . '-256.jpg', $rfile . '-256');
} else {
Logging::error("The file $rfile does not exist");
}
return $get_img;
}
/**
* Render image
* Used in API to render JPEG

View file

@ -400,6 +400,12 @@ class LibraryController extends Zend_Controller_Action
} else {
$serialized[$j["name"]] = $j["value"];
}
if ($j["name"] == "artwork_uploaded") {
if ($j["value"] != null || $j["value"] != ''){
$serialized["artwork"] = FileDataHelper::uploadArtwork($file_id, $j["value"] );
}
}
}
// Sanitize any wildly incorrect metadata before it goes to be validated.

View file

@ -22,13 +22,21 @@ class Application_Form_EditAudioMD extends Zend_Form
$artwork = new Zend_Form_Element_Hidden('artwork');
$artwork->setFilters(array('StringTrim'))
->setValidators(array(
new Zend_Validate_StringLength(array('max' => 512))
new Zend_Validate_StringLength(array('max' => 2048))
));
$file_id->addDecorator('HtmlTag', array('tag' => 'div', 'style' => 'display:none'));
$file_id->removeDecorator('Label');
$file_id->setAttrib('class', 'artwork');
$this->addElement($artwork);
// Add artwork uploaded hidden field
$artwork_uploaded = new Zend_Form_Element_Hidden('artwork_uploaded');
$artwork_uploaded->class = 'input_text artwork_uploaded_'. $p_id;
$file_id->addDecorator('HtmlTag', array('tag' => 'div', 'style' => 'display:none'));
$file_id->removeDecorator('Label');
$file_id->setAttrib('class', 'artwork_uploaded');
$this->addElement($artwork_uploaded);
// Add title field
$track_title = new Zend_Form_Element_Text('track_title');
$track_title->class = 'input_text';

View file

@ -19,7 +19,16 @@
</div>
</div>
<div class="track-edit-left">
<?php echo '<img width="140" height="140" src="' . $get_artwork .'">'; ?>
<div class="artwork-upload" data-id="<?php echo($this->id); ?>">
<div class="artwork-edit">
<input type='file' class="artworkUpload artwork-uploaded-<?php echo($this->id); ?>" id="artworkUpload" data-id="<?php echo($this->id); ?>" accept=".png, .jpg, .jpeg" />
<label for="artworkUpload"></label>
</div>
<div id="artwork-preview" class="artwork-preview">
<div class="artwork-preview-<?php echo($this->id); ?>" id="artworkPreview" style="background-image: url(<?php echo $get_artwork; ?>);">
</div>
</div>
</div>
</div>
</div>
<div style="height: 160px;"></div>