Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions

Reply
 
Thread Tools Display Modes
  #1  
Old 05-13-2002, 03:23 AM
wooolF[RM]'s Avatar
wooolF[RM] wooolF[RM] is offline
 
Join Date: Jan 2002
Posts: 524
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Replacing space with "_" when UL a file

]Hello everybody

have a little problem here.
I wrote a little script to upload/download files to one specific folder on my host.

problem is : u can upload files with space in the filename, but then u can't download it, it will link to somethink like : http://www.bla.com/upload/bo instead of http://www.bla.com/upload/bo om.jpg

So I though that there may be a function replacing space with %20 or simple "_".

I tried to add
Code:
$file1=str_replace(" ","_",$file);
and then use code (after all checks for right extensions, file size limit etc)
Code:
@copy($file1, "$absolute_path/$file_name")
but it haven't helped...

I know it's really simple... but I can't hit it... :cross-eyed:

Can anyone help pls? Thanx!
Reply With Quote
  #2  
Old 05-13-2002, 04:15 AM
wooolF[RM]'s Avatar
wooolF[RM] wooolF[RM] is offline
 
Join Date: Jan 2002
Posts: 524
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

]
Code:
There?re strip_tags(), stripslashes and stripcslashes ? why not a
stripspaces() function too? Here it is.

function stripspaces($tex)
{
   return(str_replace(" ","",$tex));
}
any way anyone can help me implement this into my script? I'm just lost... :/
Reply With Quote
  #3  
Old 05-13-2002, 04:37 AM
wooolF[RM]'s Avatar
wooolF[RM] wooolF[RM] is offline
 
Join Date: Jan 2002
Posts: 524
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

]have also tried to link to file as
Code:
<a href=$dl/$file1>blabla</a>
and then adding variable like
Code:
$file1=str_replace(" ","_",$file);
still no luck
Reply With Quote
  #4  
Old 05-13-2002, 10:05 AM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$file = strtr($file, " ", "_");

should help..

Also your both examples seem correct to me in the first look. Are you sure you didnt miss another thing? For example in your code you assigned the modified name to variable "$file1". Are you sure you use the variable "$file1" instead of $file after you replaced the chars..

As for calling your function, this is the line you should use:
$file=stripspaces($file);
Reply With Quote
  #5  
Old 05-13-2002, 12:26 PM
wooolF[RM]'s Avatar
wooolF[RM] wooolF[RM] is offline
 
Join Date: Jan 2002
Posts: 524
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

]it worked! thanx a lot

just one last problem (really last one)

file called bom'b'a.jpg after uploading will be called bom\-b\-a.jpg if I add
Code:
$file=str_replace("'","-",$file);
wny ideas why?
Reply With Quote
  #6  
Old 05-13-2002, 01:20 PM
wooolF[RM]'s Avatar
wooolF[RM] wooolF[RM] is offline
 
Join Date: Jan 2002
Posts: 524
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

]
Quote:
Originally posted by Logician
As for calling your function, this is the line you should use:
$file=stripspaces($file);
erm...
I use
Code:
$dir = opendir($absolute_path);
while($file = readdir($dir)) {
if (($file != "..") and ($file != ".")) {
$file=str_replace(" ","%20",$file);
$list .= "$file"
echo $list;
That gives me full listing og the given folder...

Now I tried to add size ( $size ) of the file right after name of the file ( $file ) by using this script:
Code:
// $size is the filesize (in bytes)
function rendersize($size) {

	$type = 'bytes';

	if ($size > '1023') {

		$size = $size/1024;
		$type = 'KB';

	}

	if ($size > '1023') {

		$size = $size/1024;
		$type = 'MB';

	}

	if ($size > '1023') {

		$size = $size/1024;
		$type = 'GB';

	}

	if ($size > '1023') {

		$size = $size/1024;
		$type = 'TB';

	}

	// Fix decimals and stuff
	if ($size < '10') $size = intval($size*100)/100;
	else if ($size < '100') $size = intval($size*10)/10;
	else $size = intval($size);

	// Comment the following line if you want X.XX KB displayed instead of X,XX KB
	$size = str_replace("." , "," , $size);
	return "$size $type";
}
I have NO idea where to insert that script (before html? before head? before ... ?) and what variable to use after that.

I tried some variants like
Code:
$list .= "$file $size $type"
but got just empty spaces instead of file size...
I'm sure I'm inserting that script in the wrong place or I have to remove
Code:
return "$size $type";
and insert it in other place... I really tried in over 1 hour or so, but couldn't solve this pussle
Reply With Quote
  #7  
Old 05-13-2002, 01:39 PM
Sparkz's Avatar
Sparkz Sparkz is offline
 
Join Date: Nov 2001
Posts: 544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally posted by wooolF[RM]
it worked! thanx a lot

just one last problem (really last one)

file called bom'b'a.jpg after uploading will be called bom\-b\-a.jpg if I add
Code:
$file=str_replace("'","-",$file);
wny ideas why?
Try
PHP Code:
$file=str_replace ("'","-",stripslashes ($file)); 
Looks like the ' is already escaped.
Reply With Quote
  #8  
Old 05-13-2002, 01:43 PM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The function requires to be called WITH a $size variable so as to return a result.

For example if the file size is kept in a variable called $file_size then you should replace line:

$list .= "$file"

AS

$list .= $file." (".rendersize($file_size).")";

As you see, you first send the file size to the function and then it returns it as "X Mb.".
Reply With Quote
  #9  
Old 05-13-2002, 01:44 PM
Sparkz's Avatar
Sparkz Sparkz is offline
 
Join Date: Nov 2001
Posts: 544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

for the size-part, you can stick the function wherever you want, but to actually get any output from it, you'll have to call it

try $size = rendersize (filesize ($file));

or maybe filesize ($absolutepath.$file) in your case...

The parameter to the filesize-function has to be the filename with an absolute path.
Reply With Quote
  #10  
Old 05-13-2002, 01:45 PM
Sparkz's Avatar
Sparkz Sparkz is offline
 
Join Date: Nov 2001
Posts: 544
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmm - guess you beat me to it :P
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 07:50 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08263 seconds
  • Memory Usage 2,264KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (11)bbcode_code
  • (1)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete