0
這是我的HTML代碼。/cgi-bin/upload.pl第26行沒有這樣的文件或目錄。當嘗試使用AngularJS上傳文件時
<button class="button" ngf-select ng-model="files" ngf-multiple="multiple">Select File</button>
Files:
<ul>
<li ng-repeat="f in files" style="font:smaller">{{f.name}}</li>
</ul>
Upload Log:
<pre>{{log}}</pre>
這是控制器代碼。
$scope.$watch('files', function() {
$scope.upload($scope.files);
});
$scope.log = '';
$scope.upload = function (files) {
if (files && files.length) {
for (var i = 0; i < files.length; i++) {
var file = files[i];
Upload.upload({
url: '/cgi-bin/upload.pl',
fields: {
'username': $scope.username
},
file: file
}).progress(function (evt) {
var progressPercentage = parseInt(100.0 * evt.loaded/evt.total);
$scope.log = 'progress: ' + progressPercentage + '% ' +
evt.config.file.name + '\n' + $scope.log;
}).success(function (data, status, headers, config) {
$timeout(function() {
$scope.log = 'file: ' + config.file.name + ', Response: ' + JSON.stringify(data) + '\n' + $scope.log;
});
})
.error(function (data, status, headers, config) {
alert ('Error');
});
}
}
};
這是Perl腳本。
#!c:/perl64/bin/perl.exe
use strict;
use warnings;
use DBI;
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use CGI;
use CGI qw(:standard);
use JSON;
use CGI::Carp qw (fatalsToBrowser);
use File::Basename;
#send the obligatory Content-Type
print "Content-Type: text/html\n\n";
$CGI::POST_MAX = 1024 * 5000;
my $safe_filename_characters = "a-zA-Z0-9_.-";
my $cgi = new CGI();
my $upload_dir = "../images"; #location on our server
my $filename = "dummy.png";
my $upload_filehandle = $cgi->upload("file");
print $upload_filehandle;
open UPLOADFILE, ">../..$upload_dir$filename" or die $!;
binmode UPLOADFILE;
while (<$upload_filehandle>)
{
print UPLOADFILE;
}
close UPLOADFILE;
當我試圖上傳本地Apache服務器上的文件,看到這個錯誤。
在C無這樣的文件或目錄:/程序文件(x86)/阿帕奇組/的Apache2/htdocs目錄/管理/ cgi-bin目錄/ upload.pl線26
這是perl腳本線26。
open UPLOADFILE, ">../..$upload_dir$filename" or die $!;
我有一個名爲images的文件夾已經創建好了。那麼爲什麼這個錯誤?
任何人都可以幫助我什麼是錯的,什麼chages需要,我可以正確上傳文件。
嗨ikegami。感謝您的迴應。在集成你的建議cahnegs現在我得到這個錯誤。無法創建../..../imagesdummy.png; –
因爲它應該。你真的認爲路徑'../..../ imagesdummy.png'有意義嗎? – ikegami
糟糕我的錯。我做了改變。 my $ qfn =「../$upload_dir/$filename」; my $ UPLOADFILE; open($ UPLOADFILE,'>',$ qfn) or die(「Can not create \」$ qfn \「:$!\ n」);現在響應是文件:als.png,響應:「als.png」,但沒有文件保存在目錄中。任何想法,現在有什麼不對? –