bestandsnaam bij uploaden NIET hernoemen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

HJ Zomer

HJ Zomer

22/10/2012 21:46:06
Quote Anchor link
Hallo,

ik werk voor mijn website met het CMS script van Syndeo.

Hierin zit ook een module om bestanden te uploaden naar de website. Alleen het script hernoemt het bestand (bijv. een *.doc) bij het opslaan in de SQL database, door de spaties te vervangen door een underscore ( _ ).

Dat wil ik niet want hierdoor lukt het me niet bijv. *.doc bestanden te openen die een spatie bevatten. Nu kan ik natuurlijk al mijn document namen vervangen zodat het script er mee overweg kan. Maar kan dit ook anders?

Ik heb in het script nu de volgende code gevonden;

function remove_special_characters($string)
{
# Remove spaces, apostrophe, exclamation marks and replace them with underscore
$string = preg_replace("/[^a-zA-Z0-9-.]/", "_", $string);
$string = normalize($string);

return $string ;
} // end of the 'remove_special_characters()' function

function normalize ($string)
{
# Replace 'special' characters with their counter part.
$table = array(
'ä'=>'S', 'ö'=>'s', 'é'=>'Z', 'û'=>'z', 'C'=>'C', 'c'=>'c', 'C'=>'C', 'c'=>'c',
'¿'=>'A', '¡'=>'A', '¬'=>'A', '√'=>'A', 'ƒ'=>'A', '≈'=>'A', '∆'=>'A', '«'=>'C', '»'=>'E', '…'=>'E',
' '=>'E', 'À'=>'E', 'Ã'=>'I', 'Õ'=>'I', 'Œ'=>'I', 'œ'=>'I', '—'=>'N', '“'=>'O', '”'=>'O', '‘'=>'O',
'’'=>'O', '÷'=>'O', 'ÿ'=>'O', 'Ÿ'=>'U', '⁄'=>'U', '€'=>'U', '‹'=>'U', '›'=>'Y', 'fi'=>'B', 'fl'=>'Ss',
'‡'=>'a', '·'=>'a', '‚'=>'a', '„'=>'a', '‰'=>'a', 'Â'=>'a', 'Ê'=>'a', 'Á'=>'c', 'Ë'=>'e', 'È'=>'e',
'Í'=>'e', 'Î'=>'e', 'Ï'=>'i', 'Ì'=>'i', 'Ó'=>'i', 'Ô'=>'i', ''=>'o', 'Ò'=>'n', 'Ú'=>'o', 'Û'=>'o',
'Ù'=>'o', 'ı'=>'o', 'ˆ'=>'o', '¯'=>'o', '˘'=>'u', '˙'=>'u', '˚'=>'u', '˝'=>'y', '˝'=>'y', '˛'=>'b',
'ˇ'=>'y', 'R'=>'R', 'r'=>'r',
);

return strtr($string, $table);
}


is dit de boosdoener? En zo ja hoe kan ik deze code veranderen zodat hij de spaties niet langer vervangt door underscore?

Graag hulp.

BVD

HJ

AANVULLING:
ik kan ge-uploade bestanden met een spatie in de bestandsnaam wel downloaden alleen krijg ik dan een blanco document. ;-(
Gewijzigd op 22/10/2012 21:53:58 door HJ Zomer
 
PHP hulp

PHP hulp

24/11/2024 15:09:24
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2012 22:51:51
Quote Anchor link
in ieder geval kun je de streepjes weer snel genoeg in spaties veranderen door de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $string = implode(' ', explode('_', $string)); ?>


ik doe het even uit mijn hoofd.
 
HJ Zomer

HJ Zomer

22/10/2012 23:25:28
Quote Anchor link
Dank voor de reactie..

ik heb geprobeerd je line toe te voegen zodat de wijziging ongedaan werd gemaakt. Helaas werkte het niet.

Is de plaatsing van je line nog essentieel?

Heb het nu oa zo geprobeerd;


function remove_special_characters($string)
{
# Remove spaces, apostrophe, exclamation marks and replace them with underscore
$string = preg_replace("/[^a-zA-Z0-9-.]/", "_", $string);
$string = implode(' ', explode('_', $string));
$string = normalize($string);

return $string ;
} // end of the 'remove_special_characters()' function

Je zou toch denken dat hij de wijziging dan direct opheft?

Mvg, HJ

Toevoeging op 23/10/2012 00:31:43:

Thanks met behulp van een ander fora vond ik waar ik jou line moest plakken. Het werkt!

Dank
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/10/2012 01:23:09
Quote Anchor link
Kom op zeg, plak dit voorbeeld eens in een editor en sla dat als test.php op en zie het resultaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$string
= een_bestandsnaam_met_streepjes;

$string = implode(' ', explode('_', $string));

echo $string;
?>


Toevoeging op 23/10/2012 01:24:07:

ohhhhhh okee het is dus toch gelukt :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.