[Affelio-cvs 31] CVS update: affelio/lib/Affelio/App/Admin

Back to archive index

Tadashi Okoshi slash****@users*****
2005年 6月 17日 (金) 18:56:51 JST


Index: affelio/lib/Affelio/App/Admin/EditSkins.pm
diff -u affelio/lib/Affelio/App/Admin/EditSkins.pm:1.1.1.1 affelio/lib/Affelio/App/Admin/EditSkins.pm:1.2
--- affelio/lib/Affelio/App/Admin/EditSkins.pm:1.1.1.1	Tue Jun 14 12:53:29 2005
+++ affelio/lib/Affelio/App/Admin/EditSkins.pm	Fri Jun 17 18:56:50 2005
@@ -6,7 +6,7 @@
 #    http://affelio.jp/ (Japan)
 #    http://affelio.jp/ (USA and other area)
 #
-# $Id: EditSkins.pm,v 1.1.1.1 2005/06/14 03:53:29 slash5234 Exp $
+# $Id: EditSkins.pm,v 1.2 2005/06/17 09:56:50 slash5234 Exp $
 
 package Affelio::App::Admin::EditSkins;
 {
@@ -55,39 +55,53 @@
     sub upload{
 	my $af = shift;
 	my $cgi = shift;
+	use File::Basename;
 
 	debug_print("EditSkins:upload: start.");
 	
 	my $filename = $cgi->param('uploadingfile');
 	my $filetype = $cgi->uploadInfo($filename)->{'Content-Type'};
+	my $basename = ""; #basename($filename,"");
 
 	my $buffer="";
 	my $filecontent="";
 	while(my $bytesread = read($filename, $buffer, 2048)){
 	    $filecontent .= $buffer;
 	}
-
-	my $ostype = $cgi->param('ostype');
 	
-	use File::Basename;
+	my $ostype = $cgi->param('ostype');
 	fileparse_set_fstype("$ostype");
-	my $basename = basename($filename,"");
 
+	my $euc_filename = Jcode->new($filename)->euc;
+	$euc_filename =~ s|\\|/|g;
+	debug_print("EditSkins:upload: euc_filename = $euc_filename");
+
+	if($euc_filename =~ /([\w\-]+\.zip)$/){
+	    $basename = ($1);
+	}
+    
 	debug_print("EditSkins:upload: ostype   = $ostype");
 	debug_print("EditSkins:upload: filetype = $filetype");
 	debug_print("EditSkins:upload: filename = $filename");
 	debug_print("EditSkins:upload: basename = $basename");
 
-	if($filetype eq "application/zip" || $filename =~ /\.zip$/){
+	if($filetype =~ /zip/ || $filename =~ /\.[zip|ZIP]$/){
+	    debug_print("EditSkins:upload: OK. This is a zip file. ");
+	    debug_print("EditSkins:upload: Extracting [$basename]...");
+
 	    open(FILEOUT, "> $af->{site__fs_root}/skins/$basename");
 	    binmode(FILEOUT);
 	    print(FILEOUT $filecontent);
 	    close(FILEOUT);
 
 	    system("cd $af->{site__fs_root}/skins; unzip $basename");
-
 	    system("cd $af->{site__fs_root}/skins; rm -rf  $basename");
+
+	    debug_print("EditSkins:upload: Extracting [$basename]...DONE.");
 	}else{
+	    debug_print("EditSkins:upload: This is a NOT zip file. [$basename]");
+	    debug_print("EditSkins:upload: Putting [$basename]...");
+
 	    open(FILEOUT, "> $af->{site__fs_root}/skins/$af->{userpref__skin}/$basename");
 	    binmode(FILEOUT);
 	    print(FILEOUT $filecontent);


Affelio-cvs メーリングリストの案内
Back to archive index