Upload artwork using drag and drop or click to browse using track edit.
This commit is contained in:
parent
7701d0f438
commit
a65ab11d9f
6 changed files with 334 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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';
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue