slitaz-base-files rev 282

httphelper.sh: multiple files support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Aug 02 13:29:21 2015 +0200 (2015-08-02)
parents 2cfbf1c67fd5
children f894c64b5e7c
files rootfs/usr/lib/slitaz/httphelper.sh
line diff
     1.1 --- a/rootfs/usr/lib/slitaz/httphelper.sh	Tue Jul 28 12:39:15 2015 +0200
     1.2 +++ b/rootfs/usr/lib/slitaz/httphelper.sh	Sun Aug 02 13:29:21 2015 +0200
     1.3 @@ -61,15 +61,16 @@
     1.4  _ARRAY() {
     1.5  	if [ -z "$2" ]; then
     1.6  		eval echo \$${1}__NAMES
     1.7 -	else
     1.8 -		[ -n "$(eval echo \$${1}__NAMES)" ] && eval "echo \"\$${1}_${2}_${3:-1}\""
     1.9 +	elif [ "$(eval echo \$${1}__NAMES)" ]; then
    1.10 +		[ "$4" ] && eval "echo \"\$${1}_${2}_${3}_${4}\"" ||
    1.11 +		eval "echo \"\$${1}_${2}_${3:-1}\""
    1.12  	fi
    1.13  }
    1.14  
    1.15  
    1.16  GET()   	{ _ARRAY GET    "$1" $2; }
    1.17  POST()  	{ _ARRAY POST   "$1" $2; }
    1.18 -FILE()  	{ _ARRAY FILE   "$1" $2; }
    1.19 +FILE()  	{ _ARRAY FILE   "$1" $2 ${3:-1}; }
    1.20  COOKIE()	{ _ARRAY COOKIE "$1" $2; }
    1.21  
    1.22  
    1.23 @@ -91,7 +92,13 @@
    1.24  	done
    1.25  	for i in $(FILE) ; do
    1.26  		for j in name size type tmpname ; do
    1.27 -			echo "FILE($i,$j)='$(FILE $i $j)'"
    1.28 +			if [ $(FILE $i count) -gt 1 ]; then
    1.29 +				for k in $(seq 1 $(FILE $i count)); do
    1.30 +					echo "FILE($i,$j,$k)='$(FILE $i $j $k)'"
    1.31 +				done
    1.32 +			else
    1.33 +				echo "FILE($i,$j)='$(FILE $i $j)'"
    1.34 +			fi
    1.35  		done
    1.36  	done
    1.37  }
    1.38 @@ -197,14 +204,22 @@
    1.39  
    1.40  					$'\r')
    1.41  						if [ -n "$filename" ]; then
    1.42 +							eval cnt=\$FILE_${name}_count_1
    1.43 +							cnt=$(($cnt + 1))
    1.44 +							eval FILE_${name}_count_1=$cnt
    1.45  							tmp=$(mktemp $prefix$$/uploadXXXXXX)
    1.46  							cat > $tmp
    1.47 -							FILE__NAMES="$FILE__NAMES $name"
    1.48 -							FILE__NAMES="${FILE__NAMES# }"
    1.49 -							eval FILE_${name}_tmpname=$tmp
    1.50 -							eval FILE_${name}_name=$filename
    1.51 -							eval FILE_${name}_size=$(stat -c %s $tmp)
    1.52 -							eval FILE_${name}_type=$type
    1.53 +							case " $FILE__NAMES " in
    1.54 +								*\ $name\ *)
    1.55 +									;;
    1.56 +								*)
    1.57 +									FILE__NAMES="$FILE__NAMES $name"
    1.58 +									FILE__NAMES="${FILE__NAMES# }" ;;
    1.59 +							esac
    1.60 +							eval FILE_${name}_tmpname_$cnt=$tmp
    1.61 +							eval FILE_${name}_name_$cnt=$filename
    1.62 +							eval FILE_${name}_size_$cnt=$(stat -c %s $tmp)
    1.63 +							eval FILE_${name}_type_$cnt=$type
    1.64  						elif [ -n "$name" ]; then
    1.65  							eval cnt=\$POST_${name}_count
    1.66  							cnt=$(($cnt + 1))