Skip to content

Commit fae540d

Browse files
Added the ability to specify target file name in the file manager's move function.
1 parent 71dc825 commit fae540d

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

lib/filemanager.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -88,20 +88,20 @@ module.exports = function (middleware, options) {
8888
});
8989
};
9090

91-
var move = function (source, targetDir, callback) {
91+
var move = function (source, target, targetDir, callback) {
9292
fs.exists(targetDir, function (exists) {
9393
if (!exists) {
9494
mkdirp(targetDir, function (err) {
9595
if (err)
9696
callback(err);
9797
else
98-
move(source, targetDir, callback);
98+
move(source, target, targetDir, callback);
9999
});
100100
} else {
101101
fs.stat(source, function (err, stat) {
102102
if (!err) {
103103
if (stat.isFile()) {
104-
safeName(targetDir, path.basename(source), function (safename) {
104+
safeName(targetDir, path.basename(target), function (safename) {
105105
moveFile(source, targetDir + '/' + safename, function (err) {
106106
callback(err, safename);
107107
});
@@ -117,12 +117,16 @@ module.exports = function (middleware, options) {
117117
});
118118
};
119119

120-
FileManager.prototype.move = function (filename, targetDir, callback) {
120+
FileManager.prototype.move = function (moveOptions, callback) {
121121

122122
var targetUrl;
123+
var filename = moveOptions.filename;
124+
var targetFilename = moveOptions.targetFilename || filename;
125+
var targetDir = moveOptions.targetDir || "";
123126

124127
// for safety
125128
filename = path.basename(filename).replace(/^\.+/, '');
129+
targetFilename = path.basename(targetFilename).replace(/^\.+/, '');
126130

127131
if (!targetDir.match(/^\//)) {
128132
targetUrl = options.targetUrl() + '/' + targetDir;
@@ -133,7 +137,7 @@ module.exports = function (middleware, options) {
133137
fs.stat(options.uploadDir() + '/' + filename, function (err, stat) {
134138
if (!err) {
135139
if (stat.isFile()) {
136-
move(options.uploadDir() + '/' + filename, targetDir, function (err, safename) {
140+
move(options.uploadDir() + '/' + filename, targetFilename, targetDir, function (err, safename) {
137141
if (err) {
138142
callback(err);
139143
} else {
@@ -156,7 +160,7 @@ module.exports = function (middleware, options) {
156160
counter++;
157161
fs.exists(options.uploadDir() + '/' + version + '/' + filename, function (exists) {
158162
if (exists) {
159-
move(options.uploadDir() + '/' + version + '/' + filename, targetDir + '/' + version + '/', function (err, safename) {
163+
move(options.uploadDir() + '/' + version + '/' + filename, targetFilename, targetDir + '/' + version + '/', function (err, safename) {
160164
if (!err && relative)
161165
urls[version + '_url'] = targetUrl + '/' + version + '/' + safename;
162166
finish(err);

0 commit comments

Comments
 (0)