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))