HTTP Status 500 – Internal Server Error

HTTP Status 500 – Internal Server Error

package com.imooc.web.action;

import java.io.IOException;
import java.io.File;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.imooc.domain.Category;
import com.imooc.domain.Product;
import com.imooc.service.CategoryService;
import com.imooc.service.ProductService;
import com.imooc.service.impl.CategoryServiceImpl;
import com.imooc.service.impl.ProductServiceImpl;
import com.imooc.utils.UploadUtils;



@WebServlet("/ProductServlet")
public class ProductServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//接收method参数
		String methodName = request.getParameter("method");
		if("findAll".equals(methodName)) {
			//查询商品
			findAll(request,response);
		}else if("saveUI".equals(methodName)) {
			//添加商品
			saveUI(request,response);
		}else if("save".equals(methodName)) {
			save(request,response);
		}else if("edit".equals(methodName)) {
			edit(request,response);
		}else if("update".equals(methodName)) {
			update(request,response);
		}else if("delete".equals(methodName)) {
			delete(request,response);
		}
	}
	/*
	 * 商品管理,删除商品
	 */
	private void delete(HttpServletRequest request, HttpServletResponse response) throws IOException {
		Integer pid = Integer.parseInt(request.getParameter("pid"));
		ProductService productService = new ProductServiceImpl();
		productService.delete(pid);
		System.out.println(productService);
		//删除图片
		Product product = productService.findOne(pid);
		String path = product.getPath();
		if(path != null && "".equals(path)) {
			String realPath = this.getServletContext().getRealPath(path);
			File file = new File(realPath);
			if(file.exists()) {
				file.delete();
				System.out.println("删除成功");
			}
		}
		//跳转页面
		response.sendRedirect(request.getContextPath()+"/ProductServlet?method=findAll");
	}
	/*
	 * 商品管理,修改保存商品
	 */
	private void update(HttpServletRequest request, HttpServletResponse response) throws IOException {
		Map<String, String> map = UploadUtils.uploadFile(request);
		Product product = new Product();
		product.setPid(Integer.parseInt(map.get("pid")));
		product.setPname(map.get("pname"));
		product.setAuthor(map.get("author"));
		product.setPrice(Double.parseDouble(map.get("price")));
		product.setDescription(map.get("description"));
		product.setFilename(map.get("filename"));
		product.setPath(map.get("path"));
		product.getCategory().setCid(Integer.parseInt(map.get("cid")));
		//处理数据
		ProductService productService = new ProductServiceImpl();
		productService.update(product);
		//页面跳转
		response.sendRedirect(request.getContextPath()+"/ProductServlet?method=findAll");
		
	}
	/*
	 * 商品管理,编辑商品
	 */
	private void edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Integer pid = Integer.parseInt(request.getParameter("pid"));
		ProductService productService = new ProductServiceImpl();
		Product product = productService.findOne(pid);
//		System.out.println(product);
		CategoryService categoryService = new CategoryServiceImpl();
		List<Category> categoryList = categoryService.findAll();
		//页面跳转
		request.setAttribute("product", product);
		request.setAttribute("categoryList", categoryList);
		request.getRequestDispatcher("/admin/product_update.jsp").forward(request, response);
		
	}
	private void save(HttpServletRequest request, HttpServletResponse response) throws IOException {
		// 文件上传
		Map<String,String> map = UploadUtils.uploadFile(request);
		//将数据完成封装
		Product product = new Product();
		product.setPname(map.get("pname"));
		product.setAuthor(map.get("author"));
		product.setPrice(Double.parseDouble(map.get("price")));
		product.setDescription(map.get("description"));
		product.setFilename(map.get("filename"));
		product.setPath(map.get("path"));
		product.getCategory().setCid(Integer.parseInt(map.get("cid")));
		//处理数据
		ProductService productService = new ProductServiceImpl();
		productService.save(product);
		System.out.println("findAll-1");
		//跳转页面
		response.sendRedirect(request.getContextPath()+"/ProductServlet?method=findAll");
	}
	/*
	 * 商品模块,跳转到添加页面的方法
	 */
	private void saveUI(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//查询所有分类
		CategoryService categoryService = new CategoryServiceImpl();
		List<Category> list = categoryService.findAll();
		//页面跳转
		request.setAttribute("categoryList", list);
		request.getRequestDispatcher("/admin/product_add.jsp").forward(request, response);
	}
	/*
	 * 商品模块,查询所有商品的方法
	 */
	private void findAll(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ProductService productService = new ProductServiceImpl();
		List<Product> list = productService.findAll();
		//页面跳转
		request.setAttribute("list", list);
		request.getRequestDispatcher("/admin/product_list.jsp").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		doGet(request, response);
	}

}

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Server.服务器版本:     Apache Tomcat/8.5.50

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 服务器构建:            Dec 7 2019 19:19:46 UTC

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 服务器版本号(:8.5.50.0

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: OS Name:               Windows 10

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: OS.版本:               10.0

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: 架构:                  amd64

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Java 环境变量:         J:\jdk1.8.0_101\jre

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: JVM 版本:              1.8.0_101-b13

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: JVM.供应商:            Oracle Corporation

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_BASE:         J:\apache-tomcat-8.5.50

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: CATALINA_HOME:         J:\apache-tomcat-8.5.50

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Command line argument: -Dcatalina.base=J:\apache-tomcat-8.5.50

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Command line argument: -Dcatalina.home=J:\apache-tomcat-8.5.50

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Command line argument: -Dwtp.deploy=J:\apache-tomcat-8.5.50\webapps

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Command line argument: -Djava.endorsed.dirs=J:\apache-tomcat-8.5.50\endorsed

二月 14, 2020 6:47:39 下午 org.apache.catalina.startup.VersionLoggerListener log

信息: Command line argument: -Dfile.encoding=GBK

二月 14, 2020 6:47:39 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent

信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [J:\jdk1.8.0_101\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;J:/jre1.8.0_101/bin/server;J:/jre1.8.0_101/bin;J:/jre1.8.0_101/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;J:\jdk1.8.0_101\bin;J:\jdk1.8.0_101\jre\bin;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;J:\ProgramFiles\Nodejs\;C:\Program Files\MySQL\MySQL Server 8.0\bin;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Users\51768\AppData\Local\Android\Sdk\tools;C:\Users\51768\AppData\Local\Android\Sdk\platform-tools;J:\apache-maven-3.6.3-bin\apache-maven-3.6.3\bin;C:\Program Files\MySQL\MySQL Shell 8.0\bin\;C:\Users\51768\AppData\Local\Microsoft\WindowsApps;C:\Users\51768\AppData\Roaming\npm;J:\ProgramFiles\Microsoft VS Code\bin;C:\Users\51768\AppData\Local\atom\bin;J:\eclipse;;.]

二月 14, 2020 6:47:40 下午 org.apache.coyote.AbstractProtocol init

信息: 初始化协议处理器 ["http-nio-8080"]

二月 14, 2020 6:47:40 下午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector

信息: Using a shared selector for servlet write/read

二月 14, 2020 6:47:40 下午 org.apache.coyote.AbstractProtocol init

信息: 初始化协议处理器 ["ajp-nio-8009"]

二月 14, 2020 6:47:40 下午 org.apache.tomcat.util.net.NioSelectorPool getSharedSelector

信息: Using a shared selector for servlet write/read

二月 14, 2020 6:47:40 下午 org.apache.catalina.startup.Catalina load

信息: Initialization processed in 1103 ms

二月 14, 2020 6:47:40 下午 org.apache.catalina.core.StandardService startInternal

信息: Starting service [Catalina]

二月 14, 2020 6:47:40 下午 org.apache.catalina.core.StandardEngine startInternal

信息: Starting Servlet Engine: Apache Tomcat/8.5.50

二月 14, 2020 6:47:43 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:43 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [J:\apache-tomcat-8.5.50\webapps\docs]

二月 14, 2020 6:47:45 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:45 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [J:\apache-tomcat-8.5.50\webapps\docs] has finished in [1,810] ms

二月 14, 2020 6:47:45 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [J:\apache-tomcat-8.5.50\webapps\examples]

二月 14, 2020 6:47:47 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:47 下午 org.apache.catalina.core.ApplicationContext log

信息: ContextListener: contextInitialized()

二月 14, 2020 6:47:47 下午 org.apache.catalina.core.ApplicationContext log

信息: SessionListener: contextInitialized()

二月 14, 2020 6:47:47 下午 org.apache.catalina.core.ApplicationContext log

信息: ContextListener: attributeAdded('StockTicker', 'async.Stockticker@1d00a697')

二月 14, 2020 6:47:47 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [J:\apache-tomcat-8.5.50\webapps\examples] has finished in [2,031] ms

二月 14, 2020 6:47:47 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [J:\apache-tomcat-8.5.50\webapps\host-manager]

二月 14, 2020 6:47:48 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:48 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [J:\apache-tomcat-8.5.50\webapps\host-manager] has finished in [1,533] ms

二月 14, 2020 6:47:48 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [J:\apache-tomcat-8.5.50\webapps\manager]

二月 14, 2020 6:47:50 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:50 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [J:\apache-tomcat-8.5.50\webapps\manager] has finished in [2,091] ms

二月 14, 2020 6:47:50 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: 把web 应用程序部署到目录 [J:\apache-tomcat-8.5.50\webapps\ROOT]

二月 14, 2020 6:47:52 下午 org.apache.jasper.servlet.TldScanner scanJars

信息: 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。

二月 14, 2020 6:47:52 下午 org.apache.catalina.startup.HostConfig deployDirectory

信息: Deployment of web application directory [J:\apache-tomcat-8.5.50\webapps\ROOT] has finished in [1,875] ms

二月 14, 2020 6:47:52 下午 org.apache.coyote.AbstractProtocol start

信息: 开始协议处理句柄["http-nio-8080"]

二月 14, 2020 6:47:52 下午 org.apache.coyote.AbstractProtocol start

信息: 开始协议处理句柄["ajp-nio-8009"]

二月 14, 2020 6:47:52 下午 org.apache.catalina.startup.Catalina start

信息: Server startup in 12358 ms

aaa   123

二月 14, 2020 6:48:06 下午 com.mchange.v2.log.MLog <clinit>

信息: MLog clients using java 1.4+ standard logging.

二月 14, 2020 6:48:07 下午 com.mchange.v2.c3p0.C3P0Registry banner

信息: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]

二月 14, 2020 6:48:07 下午 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager

信息: Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge1dla8iodaim1kfrdjz|1ba274a4, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.cj.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge1dla8iodaim1kfrdjz|1ba274a4, idleConnectionTestPeriod -> 0, initialPoolSize -> 3, jdbcUrl -> jdbc:mysql:///shop?useSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 15, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 3, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]

filename=1.jpg

{path=/shop/upload/af99f99784d2457082e52dafd833414b.jpg, filename=1.jpg, pname=阿达, price=1200, author=小黑, cid=2}

findAll-2-1

findAll-3-3

findAll-2-2

findAll-1

com.imooc.service.impl.ProductServiceImpl@7fd345e6

二月 14, 2020 6:48:36 下午 org.apache.catalina.core.StandardWrapperValve invoke

严重: 在路径为[/shop]的上下文中,servlet[com.imooc.web.action.ProductServlet]的Servlet.service()引发异常

java.lang.NullPointerException

at com.imooc.web.action.ProductServlet.delete(ProductServlet.java:58)

at com.imooc.web.action.ProductServlet.doGet(ProductServlet.java:45)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at com.imooc.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:37)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

productService输出了不为空

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好

http://img1.sycdn.imooc.com//climg/5e47993409753e2009050568.jpg

同学这里少了一个叹号 ,应该是不为“”。

http://img1.sycdn.imooc.com//climg/5e479965093cca9006520145.jpg

请同学修改后再试一下。

如果我的回答解决了你的问题,请采纳,祝学习愉快。

  • 敏捷丶 提问者 #1
    解决了,删除了UploadUtils中的request.getContextPath(),这里request.getContextPath()是不是和getRealPath()有冲突呢? this.getServletContext()在这里是相当于获取shop这个路径吗?
    2020-02-15 16:26:04
  • 敏捷丶 提问者 #2
    没删除UploadUtils中的request.getContextPath()之前,打印path是这样的{path=/upload/ab4a30b33bba4fe5924949c68ecd3e1f.jpg, filename=profile_avatar.jpg, pname=阿达erhao, price=1200, author=小黑, cid=2} 删除之后打印path是/upload/ab4a30b33bba4fe5924949c68ecd3e1f.jpg这样的 区别是在哪儿
    2020-02-15 16:28:19
  • 好帮手慕阿莹 回复 提问者 敏捷丶 #3
    没有冲突,this.getServletContext()在这里是相当于获取shop这个路径,而getRealPath()是获取电脑中的真实磁盘路径,是不同的。解决了就好,祝学习愉快
    2020-02-15 16:28:44
好帮手慕阿莹 2020-02-14 19:14:22

同学你好,

http://img1.sycdn.imooc.com//climg/5e46805f093e7c3406790130.jpghttp://img1.sycdn.imooc.com//climg/5e4680820977046307020154.jpg

同学数错了吧,58行应该是这句。

http://img1.sycdn.imooc.com//climg/5e4680ef0952657508840273.jpg

这里应该是刚把这个删了呢,再去根据这个pid找,所以会是null。

如果我的回答解决了你的问题,请采纳,祝学习愉快.

这里应该是product是null。

应该是findOne(pid);没有找到对应的值。


  • 提问者 敏捷丶 #1
    Product product = productService.findOne(pid); String path = product.getPath(); productService.delete(pid); 这里我把获取path这两句放到delete之前,虽然不报错,但upload下的图片就无法删除了
    2020-02-14 19:24:37
  • 好帮手慕阿莹 回复 提问者 敏捷丶 #2
    同学你好,获取到path后,可以根据path找到真实的磁盘路径,然后找到该文件删除,本节视频就是在实现这个功能哦,请同学参考一下老师的做法。​如果我的回答解决了你的问题,请采纳,祝学习愉快。
    2020-02-15 12:15:50
  • 提问者 敏捷丶 回复 好帮手慕阿莹 #3
    老师是把图片删除了,我是删除不了,我这里就是没法删除,只能手动去删除
    2020-02-15 14:19:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师