I'm using JQuery to crop an image.Wie kann man Bilder in ejs und Node.JS zuschneiden und hochladen?
<link href="/public/css/jquery.Jcrop.min.css" rel="stylesheet" type="text/css" />
<!-- add scripts -->
<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.js"></script>
<script src="/public/js/jquery.Jcrop.min.js"></script>
<script src="/public/js/script.js"></script>
<form id="upload_form" enctype="multipart/form-data" method="post" action="upload.php" onsubmit="return checkForm()">
<!-- hidden crop params -->
<input type="hidden" id="x1" name="x1" />
<input type="hidden" id="y1" name="y1" />
<input type="hidden" id="x2" name="x2" />
<input type="hidden" id="y2" name="y2" />
<h2>Step1: Please select image file</h2>
<div><input type="file" name="image_file" id="image_file" onchange="fileSelectHandler()" /></div>
<div class="error"></div>
<div class="step2">
<h2>Step2: Please select a crop region</h2>
<img id="preview" />
<div class="info">
<label>File size</label> <input type="text" id="filesize" name="filesize" />
<label>Type</label> <input type="text" id="filetype" name="filetype" />
<label>Image dimension</label> <input type="text" id="filedim" name="filedim" />
<label>W</label> <input type="text" id="w" name="w" />
<label>H</label> <input type="text" id="h" name="h" />
</div>
<input type="submit" value="Upload" onclick="return checkForm()"/>
</div>
For the above code I have an x, y co-ordinations, width and height of crop image and in the backend I am using the multer module in Node.JS. In that I don't know how can I pass x and y coordinates to that multer code. In my main file app.js I declare the module like
var FormData = require('form-data');
var multer = require('multer');
var upload = multer({ dest: 'uploads/' });
und in der Steuerung verwendet i wie dieses
BASE.APP.post('/profile', BASE.upload.single('avatar'), function (req, res, next) {
// req.file is the `avatar` file
// req.body will hold the text fields, if there were any
//console.log(req.file);
BASE.FS.readFile(req.file.path, function read(err, data) {
if (err) {
throw err;
}
In this way the file is uploaded but not the cropped one.
hier sind Sie die Größe 128 von 128 in meinem Fall Benutzer wird entscheiden, welche Größe des Bildes er will. Er pflegte, Funktionalität zu beschneiden, um das Bild zu beschneiden –
Das ist okay - stellen Sie einfach sicher, dass Sie die Daten des Formulars in POST übergeben, und verwenden Sie dann die Variablen aus der Anfrage. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/4295782/how-do-you-extract-post-data-in-node-js. Ich werde versuchen, die Antwort zu aktualisieren. –
Bitte lesen Sie die aktualisierte Antwort, die hasn wurde nicht getestet. Ich habe 'querystring' Modul verwendet, ein Nicht-Import von' node's Kern, mit dem Sie POST-Parameter anfordern können. Der Code kann nun POST-Parameter als Avatar- Größe verwenden. Denken Sie immer daran, POST-Daten von Benutzern aus Sicherheitsgründen zu bereinigen. –