您的位置:首页 > 运维架构

ecshop后台批量上传图片方法

2012-09-11 13:58 253 查看
<script src="/scripts/utils.js"></script>

2. <script src="/scripts/utils.js"></script><script src="/scripts/transport.js"></script>

3. <script>

4. function addImg(obj)

5. {

6. var src = obj.parentNode.parentNode;

7. var idx = rowindex(src);

8. var tbl = document.getElementById('gallery-table');

9. var row = tbl.insertRow(idx + 1);

10. var cell = row.insertCell(-1);

11. cell.innerHTML = src.cells[0].innerHTML.replace(/(.*)(addImg)(.*)(\[)(\+)/i, "$1removeImg$3$4-");

12. }

13. function addImg1(obj)

14. {

15. var src = obj.parentNode.parentNode;

16. var idx = rowindex(src);

17. var tbl = document.getElementById('gallery-table1');

18. var row = tbl.insertRow(idx + 1);

19. var cell = row.insertCell(-1);

20. cell.innerHTML = src.cells[0].innerHTML.replace(/(.*)(addImg1)(.*)(\[)(\+)/i, "$1removeImg1$3$4-");

21. }

22. /**

23. * 删除图片上传

24. */

25. function removeImg(obj)

26. {

27. var row = rowindex(obj.parentNode.parentNode);

28. var tbl = document.getElementById('gallery-table');

29. tbl.deleteRow(row);

30. }

31. function removeImg1(obj)

32. {

33. var row = rowindex(obj.parentNode.parentNode);

34. var tbl = document.getElementById('gallery-table1');

35. tbl.deleteRow(row);

36.

37. </script>

去php文件提交表单的地方加上:

1. <tr>

2. <td height="25" align="right" bgcolor="ECF5FF">调用图片:</td>

3. <td align="center" bgcolor="ECF5FF"><!-- 商品相册 -->

4. <table width="90%" id="gallery-table" align="center">

5. <!-- 上传图片 -->

6. <tr>

7. <td>

8. <a href="java script:;" >[+]</a>

9. 图片名称 <input type="text" name="img_desc[]" />

10. 繁体名称 <input type="text" name="tra_img_desc[]" />

11. 英文名称 <input type="text" name="eng_img_desc[]" />

12. <input type="file" name="img_url[]" class="button" />

13. </td>

14. </tr>

15. </table></td>

16. /tr>

17. <tr>

1. handle_gallery_image($newid,$_FILES['img_url'], $_POST['img_desc'],$_POST['eng_img_desc'],$_POST['tra_img_desc']);

2.

3.

4. * 检查目标文件夹是否存在,如果不存在则自动创建该目录

5. *

6. * @access public

7. * @param string folder 目录路径。不能使用相对于网站根目录的URL

8. *

9. * @return bool

10. */

11. function make_dir($folder)

12. {

13. $reva l = false;

14. if (!file_exists($folder))

15. {

16. /* 如果目录不存在则尝试创建该目录 */

17. @umask(0);

18. /* 将目录路径拆分成数组 */

19. preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);

20. /* 如果第一个字符为/则当作物理路径处理 */

21. $base = ($atmp[0][0] == '/') ? '/' : '';

22. /* 遍历包含路径信息的数组 */

23. foreach ($atmp[1] AS $val)

24. {

25. if ('' != $val)

26. {

27. $base .= $val;

28. if ('..' == $val || '.' == $val)

29. {

30. /* 如果目录为.或者..则直接补/继续下一个循环 */

31. $base .= '/';

32. continue;

33. }

34. }

35. else

36. {

37. continue;

38. }

39. $base .= '/';

40. if (!file_exists($base))

41. {

42. /* 尝试创建目录,如果创建失败则继续循环 */

43. if (@mkdir(rtrim($base, '/'), 0777))

44. {

45. @chmod($base, 0777);

46. $reva l = true;

47. }

48. }

49. }

50. }

51. else

52. {

53. /* 路径已经存在。返回该路径是不是一个目录 */

54. $reva l = is_dir($folder);

55. }

56.

57. clearstatcache();

58.

59. return $reva l;

60. }

61.

62. /**

63. * 获得当前格林威治时间的时间戳

64. *

65. * @return integer

66. */

67. function gmtime()

68. {

69. return (time() - date('Z'));

70. }

71.

72. /**

73. * 获得服务器的时区

74. *

75. * @return integer

76. */

77. function server_timezone()

78. {

79. if (function_exists('date_default_timezone_get'))

80. {

81. return date_default_timezone_get();

82. }

83. else

84. {

85. return date('Z') / 3600;

86. }

87. }

88. /**

89. * 生成一个用户自定义时区日期的GMT时间戳

90. *

91. * @access public

92. * @param int $hour

93. * @param int $minute

94. * @param int $second

95. * @param int $month

96. * @param int $day

97. * @param int $year

98. *

99. * @return void

100. */

101. function local_mktime($hour = NULL , $minute= NULL, $second = NULL, $month = NULL, $day = NULL, $year = NULL)

102. {

103. $timezone = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : $GLOBALS['_CFG']['timezone'];

104. /**

105. * $time = mktime($hour, $minute, $second, $month, $day, $year) - date('Z') + (date('Z') - $timezone * 3600)

106. * 先用mktime生成时间戳,再减去date('Z')转换为GMT时间,然后修正为用户自定义时间。以下是化简后结果

107. **/

108. $time = mktime($hour, $minute, $second, $month, $day, $year) - $timezone * 3600;

109. return $time;

110. }

111. /**

112. * 将GMT时间戳格式化为用户自定义时区日期

113. *

114. * @param string $format

115. * @param integer $time 该参数必须是一个GMT的时间戳

116. *

117. * @return string

118. */

119. function local_date($format, $time = NULL)

120. {

121. $timezone = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : $GLOBALS['_CFG']['timezone'];

122.

123. if ($time === NULL)

124. {

125. $time = gmtime();

126. }

127. elseif ($time <= 0)

128. {

129. return '';

130. }

131. $time += ($timezone * 3600);

132. return date($format, $time);

133. }

134. /**

135. * 转换字符串形式的时间表达式为GMT时间戳

136. *

137. * @param string $str

138. *

139. * @return integer

140. */

141. function gmstr2time($str)

142. {

143. $time = strtotime($str);

144. if ($time > 0)

145. {

146. $time -= date('Z');

147. }

148. return $time;

149. }

150. /**

151. * 将一个用户自定义时区的日期转为GMT时间戳

152. *

153. * @access public

154. * @param string $str

155. *

156. * @return integer

157. */

158. function local_strtotime($str)

159. {

160. $timezone = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : $GLOBALS['_CFG']['timezone'];

161. /**

162. * $time = mktime($hour, $minute, $second, $month, $day, $year) - date('Z') + (date('Z') - $timezone * 3600)

163. * 先用mktime生成时间戳,再减去date('Z')转换为GMT时间,然后修正为用户自定义时间。以下是化简后结果

164. **/

165. $time = strtotime($str) - $timezone * 3600;

166. return $time;

167. }

168.

169. /**

170. * 获得用户所在时区指定的时间戳

171. *

172. * @param $timestamp integer 该时间戳必须是一个服务器本地的时间戳

173. *

174. * @return array

175. */

176. function local_gettime($timestamp = NULL)

177. {

178. $tmp = local_getdate($timestamp);

179. return $tmp[0];

180. }

181. /**

182. * 获得用户所在时区指定的日期和时间信息

183. *

184. * @param $timestamp integer 该时间戳必须是一个服务器本地的时间戳

185. *

186. * @return array

187. */

188. function local_getdate($timestamp = NULL)

189. {

190. $timezone = isset($_SESSION['timezone']) ? $_SESSION['timezone'] : $GLOBALS['_CFG']['timezone'];

191.

192. /* 如果时间戳为空,则获得服务器的当前时间 */

193. if ($timestamp === NULL)

194. {

195. $timestamp = time();

196. }

197. $gmt = $timestamp - date('Z'); // 得到该时间的格林威治时间

198. $local_time = $gmt + ($timezone * 3600); // 转换为用户所在时区的时间戳

199. return getdate($local_time);

200. }

201. function move_upload_file($file_name, $target_name = '')

202. {

203. if (function_exists("move_uploaded_file"))

204. {

205. if (move_uploaded_file($file_name, $target_name))

206. {

207. return true;

208. }

209. else if (copy($file_name, $target_name))

210. {

211. return true;

212. }

213. }

214. elseif (copy($file_name, $target_name))

215. {

216. return true;

217. }

218. return false;

219. }

220. function handle_gallery_image($news_id, $image_files,$image_desc,$eng_img_desc,$tra_img_desc)

221. {

222. global $db;

223. global $image;

224. global $dbhead;

225. foreach ($image_desc AS $key => $img_desc)

226. {

227. // 生成缩略图

228. $thumb_url = $image->make_thumb($image_files['tmp_name'][$key],100,80);

229. $thumb_url = is_string($thumb_url) ? $thumb_url : '';

230. $upload = array(

231. 'name' => $image_files['name'][$key],

232. 'type' => $image_files['type'][$key],

233. 'tmp_name' => $image_files['tmp_name'][$key],

234. 'size' => $image_files['size'][$key],

235. );

236. //print_r($upload);

237. $img_original = $image->upload_image($upload);

238. $img_url = $img_original;

239. $eng_img_desc = $eng_img_desc[$key];

240. $tra_img_desc = $tra_img_desc[$key];

241. if($image_files['name'][$key]!='')

242. {

243. $sql = $db->Execute("insert into $dbhead"."news_image (news_id,image,thumb_url,img_desc,eng_img_desc,tra_img_desc) values ('$news_id','$img_url','$thumb_url','$img_desc','$eng_img_desc','$tra_img_desc')");

244. }

245. }

246. }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: